diff --git a/toolchain/check/convert.cpp b/toolchain/check/convert.cpp index 47d89659284dc..52fbdebb71dcd 100644 --- a/toolchain/check/convert.cpp +++ b/toolchain/check/convert.cpp @@ -1208,8 +1208,10 @@ static auto PerformBuiltinConversion( } else { type_inst_id = context.types().GetAsTypeInstId(value_id); - // Shortcut for lossless round trips through a FacetAccessType when - // converting back to the type of its original facet value. + // Shortcut for lossless round trips through a FacetAccessType (which + // evaluates to SymbolicBindingType when wrapping a symbolic binding) when + // converting back to the type of the original symbolic binding facet + // value. // // In the case where the FacetAccessType wraps a BindSymbolicName with the // exact facet type that we are converting to, the resulting FacetValue @@ -1219,16 +1221,10 @@ static auto PerformBuiltinConversion( // // TODO: This instruction is going to become a `SymbolicBindingType`, so // we'll need to handle that instead. - auto const_type_inst_id = - sem_ir.constant_values().GetConstantTypeInstId(type_inst_id); - if (auto facet_access_type_inst = - sem_ir.insts().TryGetAs( - const_type_inst_id)) { - auto facet_value_inst_id = facet_access_type_inst->facet_value_inst_id; - if (sem_ir.insts().Get(facet_value_inst_id).type_id() == - target.type_id) { - return facet_value_inst_id; - } + auto facet_value_inst_id = + GetCanonicalFacetOrTypeValue(context, type_inst_id); + if (sem_ir.insts().Get(facet_value_inst_id).type_id() == target.type_id) { + return facet_value_inst_id; } } diff --git a/toolchain/check/eval.cpp b/toolchain/check/eval.cpp index 5442994e84006..d97a351732225 100644 --- a/toolchain/check/eval.cpp +++ b/toolchain/check/eval.cpp @@ -2171,6 +2171,82 @@ 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 { + auto bind = inst.As(); + + Phase phase = Phase::Concrete; + bool updated_constants = false; + + // If we know which specific we're evaluating within and this is the type + // component of a facet parameter of the generic, its constant value refers to + // the type component of the corresponding argument value of the specific. + const auto& bind_name = eval_context.entity_names().Get(bind.entity_name_id); + if (bind_name.bind_index().has_value()) { + // SymbolicBindingType comes from the evaluation of FacetAccessType when the + // facet value is symbolic. This block is effectively the deferred + // evaluation of that FacetAccessType now that a new value for the symbolic + // facet value has become known. The result is equivalent to creating a new + // FacetAccessType here with the `value_inst_id` and evaluating it. + if (auto value = + eval_context.GetCompileTimeBindValue(bind_name.bind_index()); + value.has_value()) { + auto value_inst_id = eval_context.constant_values().GetInstId(value); + if (auto facet = + eval_context.insts().TryGetAs(value_inst_id)) { + return eval_context.constant_values().Get(facet->type_inst_id); + } + + // Replace the fields with constant values as usual, except we get the + // EntityNameId from the BindSymbolicName in the specific, which + // ReplaceFieldWithConstantValue doesn't know how to do. + if (!ReplaceTypeWithConstantValue(eval_context, inst_id, &bind, &phase) || + !ReplaceFieldWithConstantValue( + eval_context, &bind, + &SemIR::SymbolicBindingType::facet_value_inst_id, &phase)) { + return SemIR::ConstantId::NotConstant; + } + + if (value_inst_id == SemIR::ErrorInst::InstId) { + phase = Phase::UnknownDueToError; + } else { + auto value_bind = + eval_context.insts().GetAs(value_inst_id); + bind.entity_name_id = + GetConstantValue(eval_context, value_bind.entity_name_id, &phase); + } + + updated_constants = true; + } + } + + if (!updated_constants) { + if (!ReplaceTypeWithConstantValue(eval_context, inst_id, &inst, &phase) || + !ReplaceAllFieldsWithConstantValues(eval_context, &inst, &phase)) { + return SemIR::ConstantId::NotConstant; + } + // Copy the updated constant field values into `bind`. + bind = inst.As(); + } + // Propagate error phase after getting the constant value for all fields. + if (phase == Phase::UnknownDueToError) { + return SemIR::ErrorInst::ConstantId; + } + + // 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( + bind.facet_value_inst_id)) { + return eval_context.constant_values().Get(facet_value->type_inst_id); + } + + return MakeConstantResult(eval_context.context(), bind, phase); +} + // Returns whether `const_id` is the same constant facet value as // `facet_value_inst_id`. // diff --git a/toolchain/check/eval_inst.cpp b/toolchain/check/eval_inst.cpp index 56f90a31bb349..a7b7be1cd977b 100644 --- a/toolchain/check/eval_inst.cpp +++ b/toolchain/check/eval_inst.cpp @@ -200,6 +200,31 @@ auto EvalConstantInst(Context& context, SemIR::FacetAccessType inst) return ConstantEvalResult::Existing( 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())); + + // Other instructions (e.g. ImplWitnessAccess) of type FacetType can appear + // here, in which case the constant inst is a FacetAccessType until those + // instructions resolve to one of the above. return ConstantEvalResult::NewSamePhase(inst); } @@ -207,13 +232,14 @@ auto EvalConstantInst(Context& context, SemIR::FacetValue inst) -> ConstantEvalResult { // A FacetValue that just wraps a BindSymbolicName without adding/removing any // witnesses is evaluated back to the BindSymbolicName itself. - if (auto access = - context.insts().TryGetAs(inst.type_inst_id)) { - auto bind_id = access->facet_value_inst_id; - auto bind = context.insts().TryGetAs(bind_id); + 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.has_value() && bind->type_id == inst.type_id) { + if (bind.type_id == inst.type_id) { return ConstantEvalResult::Existing( context.constant_values().Get(bind_id)); } diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 0b66e37d12c54..07c3728aaf768 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -752,6 +752,8 @@ static auto GetLocalConstantId(ImportRefResolver& resolver, } // Translates a NameId from the import IR to a local NameId. +// +// No new work is generated by calling this function. static auto GetLocalNameId(ImportContext& context, SemIR::NameId import_name_id) -> SemIR::NameId { if (auto ident_id = import_name_id.AsIdentifierId(); ident_id.has_value()) { @@ -761,6 +763,23 @@ static auto GetLocalNameId(ImportContext& context, SemIR::NameId import_name_id) return import_name_id; } +// Returns the id for a local symbolic EntityName from an imported one, +// preserving only the `NameId`, the `CompileTimeBindIndex`, and whether it is a +// template. Other parts of the EntityName are not kept and are not considered +// part of the canonical EntityName (even if they are present there). +// +// No new work is generated by calling this function. +static auto GetLocalSymbolicEntityNameId( + ImportContext& context, SemIR::EntityNameId import_entity_name_id) + -> SemIR::EntityNameId { + const auto& import_entity_name = + context.import_entity_names().Get(import_entity_name_id); + auto name_id = GetLocalNameId(context, import_entity_name.name_id); + return context.local_entity_names().AddSymbolicBindingName( + name_id, SemIR::NameScopeId::None, import_entity_name.bind_index(), + import_entity_name.is_template); +} + // Gets the local constant values corresponding to an imported inst block. static auto GetLocalInstBlockContents(ImportRefResolver& resolver, SemIR::InstBlockId import_block_id) @@ -1501,12 +1520,8 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, return ResolveResult::Retry(); } - const auto& import_entity_name = - resolver.import_entity_names().Get(inst.entity_name_id); - auto name_id = GetLocalNameId(resolver, import_entity_name.name_id); - auto entity_name_id = resolver.local_entity_names().AddSymbolicBindingName( - name_id, SemIR::NameScopeId::None, import_entity_name.bind_index(), - import_entity_name.is_template); + auto entity_name_id = + GetLocalSymbolicEntityNameId(resolver, inst.entity_name_id); return ResolveAsDeduplicated( resolver, {.type_id = @@ -2960,6 +2975,23 @@ 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 ResolveAsDeduplicated( + 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::TupleAccess inst) -> ResolveResult { auto type_id = GetLocalConstantId(resolver, inst.type_id); @@ -3311,6 +3343,9 @@ 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::TupleAccess inst): { return TryResolveTypedInst(resolver, inst); } diff --git a/toolchain/check/member_access.cpp b/toolchain/check/member_access.cpp index 3e492ecca30b2..fa225926ef75c 100644 --- a/toolchain/check/member_access.cpp +++ b/toolchain/check/member_access.cpp @@ -473,6 +473,23 @@ auto PerformMemberAccess(Context& context, SemIR::LocId loc_id, } } +// Returns a type that is never a facet. For facets, this returns the FacetType +// of that facet. This always gives a TypeId which we can do name lookup with. +static auto ExtractFacetTypeForFacet(Context& context, SemIR::TypeId type_id) + -> SemIR::TypeId { + auto facet_inst_id = + GetCanonicalFacetOrTypeValue(context, context.types().GetInstId(type_id)); + auto facet_inst_type_id = context.insts().Get(facet_inst_id).type_id(); + + if (facet_inst_type_id == SemIR::TypeType::TypeId) { + // `type_id` is not a facet, return it unchanged. + return type_id; + } else { + // Return the type of the facet. + return facet_inst_type_id; + } +} + // Common logic for `AccessMemberAction` and `AccessOptionalMemberAction`. static auto PerformActionHelper(Context& context, SemIR::LocId loc_id, SemIR::InstId base_id, SemIR::NameId name_id, @@ -490,8 +507,16 @@ static auto PerformActionHelper(Context& context, SemIR::LocId loc_id, } } - // If the base isn't a scope, it must have a complete type. + // Otherwise, handle `x.F` by performing lookup into the type of `x` (where + // `x` is `base_id`). auto base_type_id = context.insts().Get(base_id).type_id(); + + // Require a complete type explicitly. Materializing a temporary will too, but + // we can produce a better diagnostic here with context about what operation + // is being done (member access) that requires the complete type. + // + // TODO: ConvertToValueOrRefExpr could take context about the operation being + // done to give a better error than "invalid use of" an incomplete type? if (!RequireCompleteType(context, base_type_id, SemIR::LocId(base_id), [&] { CARBON_DIAGNOSTIC(IncompleteTypeInMemberAccess, Error, "member access into object of incomplete type {0}", @@ -502,70 +527,79 @@ static auto PerformActionHelper(Context& context, SemIR::LocId loc_id, return SemIR::ErrorInst::InstId; } + // For name lookup into a facet, never perform instance binding. + // TODO: According to the design, this should be a "lookup in base" lookup, + // not a "lookup in type of base" lookup, and the facet itself should have + // member names that directly name members of the `impl`. + bool perform_instance_binding = + !context.types().Is(base_type_id); + // Materialize a temporary for the base expression if necessary. base_id = ConvertToValueOrRefExpr(context, base_id); base_type_id = context.insts().Get(base_id).type_id(); - auto base_type_const_id = context.types().GetConstantId(base_type_id); - // Find the scope corresponding to the base type. - llvm::SmallVector lookup_scopes; - if (!AppendLookupScopesForConstant(context, loc_id, base_type_const_id, - &lookup_scopes)) { - // The base type is not a name scope. Try some fallback options. - if (auto struct_type = context.insts().TryGetAs( - context.constant_values().GetInstId(base_type_const_id))) { - // TODO: Do we need to optimize this with a lookup table for O(1)? - for (auto [i, field] : llvm::enumerate( - context.struct_type_fields().Get(struct_type->fields_id))) { - if (name_id == field.name_id) { - // TODO: Model this as producing a lookup result, and do instance - // binding separately. Perhaps a struct type should be a name scope. - return GetOrAddInst( - context, loc_id, - {.type_id = - context.types().GetTypeIdForTypeInstId(field.type_inst_id), - .struct_id = base_id, - .index = SemIR::ElementIndex(i)}); - } - } - if (required) { - CARBON_DIAGNOSTIC(QualifiedExprNameNotFound, Error, - "type {0} does not have a member `{1}`", TypeOfInstId, - SemIR::NameId); - context.emitter().Emit(loc_id, QualifiedExprNameNotFound, base_id, - name_id); - return SemIR::ErrorInst::InstId; - } else { - return SemIR::InstId::None; + { + // If `base_type_id` is a facet, we don't know its eventual type yet, but we + // don't produce a symbolic instruction to do the name lookup later. We want + // to do that lookup into the scope of the facet's FacetType, so we extract + // that here. + auto lookup_type_id = ExtractFacetTypeForFacet(context, base_type_id); + auto lookup_type_const_id = context.types().GetConstantId(lookup_type_id); + + llvm::SmallVector lookup_scopes; + if (AppendLookupScopesForConstant(context, loc_id, lookup_type_const_id, + &lookup_scopes)) { + // Perform lookup into the base type. + auto member_id = LookupMemberNameInScope( + context, loc_id, base_id, name_id, lookup_type_const_id, + lookup_scopes, + /*lookup_in_type_of_base=*/true, /*required=*/required); + + if (perform_instance_binding) { + // Perform instance binding if we found an instance member. + member_id = PerformInstanceBinding(context, loc_id, base_id, member_id); } - } - if (base_type_id != SemIR::ErrorInst::TypeId) { - CARBON_DIAGNOSTIC(QualifiedExprUnsupported, Error, - "type {0} does not support qualified expressions", - TypeOfInstId); - context.emitter().Emit(loc_id, QualifiedExprUnsupported, base_id); + return member_id; } - return SemIR::ErrorInst::InstId; } - // Perform lookup into the base type. - auto member_id = LookupMemberNameInScope( - context, loc_id, base_id, name_id, base_type_const_id, lookup_scopes, - /*lookup_in_type_of_base=*/true, /*required=*/required); - - // For name lookup into a facet, never perform instance binding. - // TODO: According to the design, this should be a "lookup in base" lookup, - // not a "lookup in type of base" lookup, and the facet itself should have - // member names that directly name members of the `impl`. - if (context.types().IsFacetType(base_type_id)) { - return member_id; + // The base type is not a name scope. Try some fallback options. + if (auto struct_type = context.insts().TryGetAs( + context.types().GetInstId(base_type_id))) { + // TODO: Do we need to optimize this with a lookup table for O(1)? + for (auto [i, field] : llvm::enumerate( + context.struct_type_fields().Get(struct_type->fields_id))) { + if (name_id == field.name_id) { + // TODO: Model this as producing a lookup result, and do instance + // binding separately. Perhaps a struct type should be a name scope. + return GetOrAddInst( + context, loc_id, + {.type_id = + context.types().GetTypeIdForTypeInstId(field.type_inst_id), + .struct_id = base_id, + .index = SemIR::ElementIndex(i)}); + } + } + if (required) { + CARBON_DIAGNOSTIC(QualifiedExprNameNotFound, Error, + "type {0} does not have a member `{1}`", TypeOfInstId, + SemIR::NameId); + context.emitter().Emit(loc_id, QualifiedExprNameNotFound, base_id, + name_id); + return SemIR::ErrorInst::InstId; + } else { + return SemIR::InstId::None; + } } - // Perform instance binding if we found an instance member. - member_id = PerformInstanceBinding(context, loc_id, base_id, member_id); - - return member_id; + if (base_type_id != SemIR::ErrorInst::TypeId) { + CARBON_DIAGNOSTIC(QualifiedExprUnsupported, Error, + "type {0} does not support qualified expressions", + TypeOfInstId); + context.emitter().Emit(loc_id, QualifiedExprUnsupported, base_id); + } + return SemIR::ErrorInst::InstId; } auto PerformAction(Context& context, SemIR::LocId loc_id, @@ -597,9 +631,9 @@ static auto GetAssociatedValueImpl(Context& context, SemIR::LocId loc_id, } // That facet value has both the self type we need below and the witness // we are going to use to look up the value of the associated member. - auto self_type_const_id = TryEvalInst( - context, SemIR::FacetAccessType{.type_id = SemIR::TypeType::TypeId, - .facet_value_inst_id = facet_inst_id}); + auto self_type_const_id = TryEvalInst( + context, {.type_id = SemIR::TypeType::TypeId, + .facet_value_inst_id = facet_inst_id}); // TODO: We should be able to lookup constant associated values from runtime // facet values by using their FacetType only, but we assume constant values // for impl lookup at the moment. @@ -610,6 +644,11 @@ static auto GetAssociatedValueImpl(Context& context, SemIR::LocId loc_id, auto self_type_id = context.types().GetTypeIdForTypeConstantId(self_type_const_id); + // TODO: If `ConvertToValueOfType` returned a `FacetValue`, we already got a + // witness for this interface there. We don't need to do both a + // ConvertToValueOfType and LookupImplWitness, that is redundant. Since we + // want to do LookupImplWitness unconditionally (eg. if `base_id` has exactly + // the right FacetType already), can we drop the ConvertToValueOfType step? auto lookup_result = LookupImplWitness( context, loc_id, context.constant_values().Get(facet_inst_id), EvalOrAddInst(context, loc_id, diff --git a/toolchain/check/name_lookup.cpp b/toolchain/check/name_lookup.cpp index 171ab64315ba8..aa8398f7b195f 100644 --- a/toolchain/check/name_lookup.cpp +++ b/toolchain/check/name_lookup.cpp @@ -11,6 +11,7 @@ #include "toolchain/check/import.h" #include "toolchain/check/import_ref.h" #include "toolchain/check/member_access.h" +#include "toolchain/check/type.h" #include "toolchain/check/type_completion.h" #include "toolchain/diagnostics/format_providers.h" #include "toolchain/sem_ir/generic.h" @@ -284,18 +285,6 @@ auto AppendLookupScopesForConstant(Context& context, SemIR::LocId loc_id, auto base_id = context.constant_values().GetInstId(base_const_id); auto base = context.insts().Get(base_id); - if (auto base_as_facet_access_type = base.TryAs()) { - // Move from the symbolic facet value up in typish-ness to its FacetType to - // find a lookup scope. - auto facet_type_type_id = - context.insts() - .Get(base_as_facet_access_type->facet_value_inst_id) - .type_id(); - base_const_id = context.types().GetConstantId(facet_type_type_id); - base_id = context.constant_values().GetInstId(base_const_id); - base = context.insts().Get(base_id); - } - if (auto base_as_namespace = base.TryAs()) { scopes->push_back( LookupScope{.name_scope_id = base_as_namespace->name_scope_id, diff --git a/toolchain/check/subst.cpp b/toolchain/check/subst.cpp index c4fe6623cb2a8..cfb5bcc4900c6 100644 --- a/toolchain/check/subst.cpp +++ b/toolchain/check/subst.cpp @@ -11,6 +11,7 @@ #include "toolchain/sem_ir/copy_on_write_block.h" #include "toolchain/sem_ir/ids.h" #include "toolchain/sem_ir/inst.h" +#include "toolchain/sem_ir/typed_insts.h" namespace Carbon::Check { @@ -423,6 +424,27 @@ 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)) { @@ -435,12 +457,13 @@ class SubstConstantCallbacks final : public SubstInstCallbacks { return SubstResult::SubstOperands; } + auto& entity_name = context().entity_names().Get(entity_name_id); + // This is a symbolic binding. Check if we're substituting it. // TODO: Consider building a hash map for substitutions. We might have a // lot of them. for (auto [bind_index, replacement_id] : substitutions_) { - if (context().entity_names().Get(entity_name_id).bind_index() == - bind_index) { + if (entity_name.bind_index() == bind_index) { // This is the binding we're replacing. Perform substitution. inst_id = context().constant_values().GetInstId(replacement_id); return SubstResult::FullySubstituted; diff --git a/toolchain/check/subst.h b/toolchain/check/subst.h index de9cbbdbb8f65..08fedfbb6716e 100644 --- a/toolchain/check/subst.h +++ b/toolchain/check/subst.h @@ -82,6 +82,12 @@ class SubstInstCallbacks { auto RebuildNewInst(SemIR::LocId loc_id, SemIR::Inst new_inst) const -> SemIR::InstId; + template + auto RebuildNewInst(SemIR::LocId loc_id, InstT new_inst) const + -> SemIR::InstId { + return RebuildNewInst(loc_id, static_cast(new_inst)); + } + private: Context* context_; }; diff --git a/toolchain/check/testdata/array/basics.carbon b/toolchain/check/testdata/array/basics.carbon index 97c395ca1d6d9..cf76e25ff862d 100644 --- a/toolchain/check/testdata/array/basics.carbon +++ b/toolchain/check/testdata/array/basics.carbon @@ -183,8 +183,8 @@ var a: array(1, 1); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f05: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6cc: %DestroyT.as_type.as.Destroy.impl.Op.type.f05 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.800: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.9cb: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.800 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -225,11 +225,11 @@ var a: array(1, 1); // CHECK:STDOUT: %v: ref %array_type = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6cc +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9cb // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c6b = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -246,11 +246,11 @@ var a: array(1, 1); // CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %tuple.type [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c7f: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b05: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1d6: %DestroyT.as_type.as.Destroy.impl.Op.type.b05 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.70c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7c8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.70c = struct_value () [concrete] // CHECK:STDOUT: %facet_value.4cf: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7a9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4cf) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.190: %DestroyT.as_type.as.Destroy.impl.Op.type.7a9 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.874: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4cf) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.433: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.874 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -288,18 +288,18 @@ var a: array(1, 1); // CHECK:STDOUT: %b: ref %tuple.type = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value.c7f] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%tuple.type, %facet_value.loc8 [concrete = constants.%facet_value.c7f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1d6 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8: %ptr.7fe = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.4cf] // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%array_type, %facet_value.loc7 [concrete = constants.%facet_value.4cf] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.190 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.433 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.20b = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -319,12 +319,12 @@ var a: array(1, 1); // CHECK:STDOUT: %array: %array_type = tuple_value (%empty_tuple) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.132: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.132) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7ed: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.79c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.132) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a49: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.79c = struct_value () [concrete] // CHECK:STDOUT: %ptr.652: type = ptr_type %tuple.type [concrete] // CHECK:STDOUT: %facet_value.c1b: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c21: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c1b) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e50: %DestroyT.as_type.as.Destroy.impl.Op.type.c21 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.06e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c1b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f33: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.06e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -358,18 +358,18 @@ var a: array(1, 1); // CHECK:STDOUT: %t: ref %array_type = bind_name t, %t.var // CHECK:STDOUT: %facet_value.loc8_27: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value.132] // CHECK:STDOUT: %.loc8_27.7: %type_where = converted constants.%tuple.type, %facet_value.loc8_27 [concrete = constants.%facet_value.132] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_27: = bound_method %.loc8_27.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.7ed +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_27: = bound_method %.loc8_27.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a49 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_27: = bound_method %.loc8_27.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc8_27: = bound_method %.loc8_27.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8_27: %ptr.652 = addr_of %.loc8_27.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_27: init %empty_tuple.type = call %bound_method.loc8_27(%addr.loc8_27) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_27: init %empty_tuple.type = call %bound_method.loc8_27(%addr.loc8_27) // CHECK:STDOUT: %facet_value.loc8_3: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.c1b] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%array_type, %facet_value.loc8_3 [concrete = constants.%facet_value.c1b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_3: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e50 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_3: = bound_method %t.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f33 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %t.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_3: %ptr.b99 = addr_of %t.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_3: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_3: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/array/import.carbon b/toolchain/check/testdata/array/import.carbon index a24ceb19259a3..a9413fbf69451 100644 --- a/toolchain/check/testdata/array/import.carbon +++ b/toolchain/check/testdata/array/import.carbon @@ -81,8 +81,8 @@ fn F() -> array(i32, 1) { // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.91f: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4f7: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ce8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4f7 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -109,11 +109,11 @@ fn F() -> array(i32, 1) { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc6_15.2(%.loc6_15.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_12.3: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc6_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.91f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc6_12.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ce8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc6_12: = bound_method %.loc6_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc6_12: = bound_method %.loc6_12.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.830 = addr_of %.loc6_12.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_12(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_12(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/array/index_not_literal.carbon b/toolchain/check/testdata/array/index_not_literal.carbon index 08cd777105d06..1d8997d50712c 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -95,8 +95,8 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.5d2, %int_2.ef8, %int_3.822) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e7e: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c98: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.cff: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c98 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -173,11 +173,11 @@ fn F(a: array({}, 3)) -> {} { // CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc10_20.15, %.loc10_23.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_20.16: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_20.14, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_20.14, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_20.7: = bound_method %.loc10_20.14, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc10_20.7: = bound_method %.loc10_20.14, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f01 = addr_of %.loc10_20.14 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_20.7(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_20.7(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index 716d98b21cfb8..a66145ba12c52 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -71,16 +71,16 @@ fn H() { G(3); } // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.bf1: %type_where = facet_value %array_type.281, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.f4a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.bf1) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.565: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bf1) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dd2: %DestroyT.as_type.as.Destroy.impl.Op.type.565 = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.5dc: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.bf1) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.90e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.bf1) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.84c: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.90e = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.662: = require_complete_type %ptr.e06 [symbolic] -// CHECK:STDOUT: %Destroy.facet.f25: %Destroy.type = facet_value %array_type.281, (%Destroy.impl_witness.f4a) [symbolic] -// CHECK:STDOUT: %.3d9: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.f25 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c7c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.dd2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.bf1) [symbolic] +// CHECK:STDOUT: %Destroy.facet.b30: %Destroy.type = facet_value %array_type.281, (%Destroy.impl_witness.5dc) [symbolic] +// CHECK:STDOUT: %.dc4: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b30 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9d2: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.84c, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.bf1) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %array_type.6f1: type = array_type %int_0, %C [concrete] // CHECK:STDOUT: %ptr.cf4: type = ptr_type %array_type.6f1 [concrete] @@ -88,18 +88,18 @@ fn H() { G(3); } // CHECK:STDOUT: %pattern_type.9c8: type = pattern_type %array_type.6f1 [concrete] // CHECK:STDOUT: %array.2e5: %array_type.6f1 = tuple_value () [concrete] // CHECK:STDOUT: %facet_value.cba: %type_where = facet_value %array_type.6f1, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.20d: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.cba) [concrete] -// CHECK:STDOUT: %Destroy.facet.ad5: %Destroy.type = facet_value %array_type.6f1, (%Destroy.impl_witness.20d) [concrete] -// CHECK:STDOUT: %.600: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.ad5 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.710: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.cba) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0db: %DestroyT.as_type.as.Destroy.impl.Op.type.710 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f19: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0db, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.cba) [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.f4d: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.cba) [concrete] +// CHECK:STDOUT: %Destroy.facet.84e: %Destroy.type = facet_value %array_type.6f1, (%Destroy.impl_witness.f4d) [concrete] +// CHECK:STDOUT: %.d5d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.84e [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ac2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.cba) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.155: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ac2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.e21: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.155, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.cba) [concrete] // CHECK:STDOUT: %complete_type.3e1: = complete_type_witness %ptr.cf4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc4_6.2: type) { @@ -111,12 +111,12 @@ fn H() { G(3); } // CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc7_22.2 [symbolic = %pattern_type (constants.%pattern_type.d48)] // CHECK:STDOUT: %array: @G.%array_type.loc7_22.2 (%array_type.281) = tuple_value () [symbolic = %array (constants.%array.2ed)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %array_type.loc7_22.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.bf1)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.f4a)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc7_22.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.f25)] -// CHECK:STDOUT: %.loc7_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.3 (constants.%.3d9)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.565)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @G.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.565) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.dd2)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c7c)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.5dc)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc7_22.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.b30)] +// CHECK:STDOUT: %.loc7_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.3 (constants.%.dc4)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.90e)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @G.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.90e) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.84c)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9d2)] // CHECK:STDOUT: %ptr: type = ptr_type %array_type.loc7_22.2 [symbolic = %ptr (constants.%ptr.e06)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr [symbolic = %require_complete.loc7_3 (constants.%require_complete.662)] // CHECK:STDOUT: @@ -139,12 +139,12 @@ fn H() { G(3); } // CHECK:STDOUT: %arr: ref @G.%array_type.loc7_22.2 (%array_type.281) = bind_name arr, %arr.var // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%array_type.281, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.bf1)] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%array_type.281, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.bf1)] -// CHECK:STDOUT: %impl.elem0: @G.%.loc7_3.3 (%.3d9) = impl_witness_access constants.%Destroy.impl_witness.f4a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.dd2)] +// CHECK:STDOUT: %impl.elem0: @G.%.loc7_3.3 (%.dc4) = impl_witness_access constants.%Destroy.impl_witness.5dc, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.84c)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %arr.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.bf1) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c7c)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.bf1) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9d2)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %arr.var, %specific_fn // CHECK:STDOUT: %addr: @G.%ptr (%ptr.e06) = addr_of %arr.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -162,12 +162,12 @@ fn H() { G(3); } // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9c8 // CHECK:STDOUT: %array => constants.%array.2e5 // CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.cba -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.20d -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.ad5 -// CHECK:STDOUT: %.loc7_3.3 => constants.%.600 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.710 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.0db -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f19 +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.f4d +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.84e +// CHECK:STDOUT: %.loc7_3.3 => constants.%.d5d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ac2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.155 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.e21 // CHECK:STDOUT: %ptr => constants.%ptr.cf4 // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.3e1 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/as/basics.carbon b/toolchain/check/testdata/as/basics.carbon index 0fdf55f136599..89ede91e55fd8 100644 --- a/toolchain/check/testdata/as/basics.carbon +++ b/toolchain/check/testdata/as/basics.carbon @@ -211,12 +211,12 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %pattern_type.bb7: type = pattern_type %tuple.type.b67 [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.b19: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b19) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.b19) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.756: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] // CHECK:STDOUT: %facet_value.4ff: %type_where = facet_value %tuple.type.b67, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1bb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4ff) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.482: %DestroyT.as_type.as.Destroy.impl.Op.type.1bb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4ff) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.961: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73f = struct_value () [concrete] // CHECK:STDOUT: %ptr.120: type = ptr_type %tuple.type.b67 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -254,18 +254,18 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %a: %tuple.type.b67 = bind_name a, %.loc13_34.2 // CHECK:STDOUT: %facet_value.loc13_33: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value.b19] // CHECK:STDOUT: %.loc13_33.4: %type_where = converted constants.%X, %facet_value.loc13_33 [concrete = constants.%facet_value.b19] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_33: %ptr.d17 = addr_of %.loc13_33.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) // CHECK:STDOUT: %facet_value.loc13_25: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value.b19] // CHECK:STDOUT: %.loc13_25.4: %type_where = converted constants.%X, %facet_value.loc13_25 [concrete = constants.%facet_value.b19] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_25: = bound_method %.loc13_25.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_25: = bound_method %.loc13_25.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13_25: = bound_method %.loc13_25.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc13_25: = bound_method %.loc13_25.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_25: %ptr.d17 = addr_of %.loc13_25.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_25: init %empty_tuple.type = call %bound_method.loc13_25(%addr.loc13_25) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_25: init %empty_tuple.type = call %bound_method.loc13_25(%addr.loc13_25) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -299,11 +299,11 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %b: ref %tuple.type.b67 = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.b67, () [concrete = constants.%facet_value.4ff] // CHECK:STDOUT: %.loc20_3.2: %type_where = converted constants.%tuple.type.b67, %facet_value [concrete = constants.%facet_value.4ff] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.482 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.961 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.120 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -319,8 +319,8 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.756: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -371,11 +371,11 @@ let n: {.x: ()} = {.x = ()} as {.x = ()}; // CHECK:STDOUT: %x: ref %X = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_3.2: %type_where = converted constants.%X, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d17 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/const.carbon b/toolchain/check/testdata/as/const.carbon index e31b7add3e441..2fa67ddcfde19 100644 --- a/toolchain/check/testdata/as/const.carbon +++ b/toolchain/check/testdata/as/const.carbon @@ -108,8 +108,8 @@ fn Use() { // CHECK:STDOUT: %addr.0c5: %ptr.cbd = addr_of %reference.var [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %const, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b7b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b9c: %DestroyT.as_type.as.Destroy.impl.Op.type.b7b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.079: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f91: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.079 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -180,11 +180,11 @@ fn Use() { // CHECK:STDOUT: %b: %ptr.cbd = bind_name b, %.loc17_25.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%const, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%const, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b9c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f91 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc14: %ptr.cbd = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc14) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc14) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -204,8 +204,8 @@ fn Use() { // CHECK:STDOUT: %pattern_type.019: type = pattern_type %X [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.756: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -239,11 +239,11 @@ fn Use() { // CHECK:STDOUT: %v: %X = bind_name v, %.loc13_20.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%X, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d17 = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/maybe_unformed.carbon b/toolchain/check/testdata/as/maybe_unformed.carbon index 9ec0dcf34aaf3..1cacd5fc08584 100644 --- a/toolchain/check/testdata/as/maybe_unformed.carbon +++ b/toolchain/check/testdata/as/maybe_unformed.carbon @@ -220,8 +220,8 @@ fn Use() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %MaybeUnformed.275, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.354: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bae: %DestroyT.as_type.as.Destroy.impl.Op.type.354 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bef: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.60f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bef = struct_value () [concrete] // CHECK:STDOUT: %ptr.58e: type = ptr_type %MaybeUnformed.275 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,11 +279,11 @@ fn Use() { // CHECK:STDOUT: %v: %MaybeUnformed.275 = bind_name v, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%MaybeUnformed.275, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%MaybeUnformed.275, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bae +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.60f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.58e = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/as/partial.carbon b/toolchain/check/testdata/as/partial.carbon index c34fefb70ee07..807825816e6ea 100644 --- a/toolchain/check/testdata/as/partial.carbon +++ b/toolchain/check/testdata/as/partial.carbon @@ -144,8 +144,8 @@ fn Use() { // CHECK:STDOUT: %addr.e01: %ptr.7b2 = addr_of %reference.var [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %.e71, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.65e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5f4: %DestroyT.as_type.as.Destroy.impl.Op.type.65e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f3c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.70b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f3c = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -216,11 +216,11 @@ fn Use() { // CHECK:STDOUT: %b: %ptr.7b2 = bind_name b, %.loc17_27.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%.e71, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%.e71, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5f4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.70b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc14: %ptr.7b2 = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc14) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc14) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -240,8 +240,8 @@ fn Use() { // CHECK:STDOUT: %pattern_type.019: type = pattern_type %X [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.756: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -290,25 +290,25 @@ fn Use() { // CHECK:STDOUT: %k: ref %X = bind_name k, %k.var // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_3: %type_where = converted constants.%X, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %k.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %k.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc34: = bound_method %k.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc34: = bound_method %k.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34: %ptr.d17 = addr_of %k.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_3: %type_where = converted constants.%X, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %j.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %j.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc26: = bound_method %j.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc26: = bound_method %j.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.d17 = addr_of %j.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%X, %facet_value.loc18 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc18: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc18: %ptr.d17 = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon index 5a783c2e2552a..e4f72183c6e8d 100644 --- a/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon +++ b/toolchain/check/testdata/basics/dump_sem_ir_ranges.carbon @@ -106,8 +106,8 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] @@ -162,11 +162,11 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %.loc20_11: init %empty_tuple.type = converted %c.ref.loc20, %.loc20_10 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %.loc20_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -226,8 +226,8 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -254,19 +254,19 @@ library "[[@TEST_NAME]]"; // CHECK:STDOUT: // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc17_7.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc17 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %.loc17_7.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %.loc17_7.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc17: = bound_method %.loc17_7.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc17: = bound_method %.loc17_7.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc17: %ptr.843 = addr_of %.loc17_7.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) // CHECK:STDOUT: // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_7.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc13 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_7.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_7.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_7.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_7.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc13: %ptr.843 = addr_of %.loc13_7.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/duplicate_name_same_line.carbon b/toolchain/check/testdata/basics/duplicate_name_same_line.carbon index 37e52de0d4768..73c99b4f498f7 100644 --- a/toolchain/check/testdata/basics/duplicate_name_same_line.carbon +++ b/toolchain/check/testdata/basics/duplicate_name_same_line.carbon @@ -27,8 +27,8 @@ fn A() { // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -68,18 +68,18 @@ fn A() { // CHECK:STDOUT: !if.done: // CHECK:STDOUT: %facet_value.loc18_25: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_25: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_25 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_25: = bound_method %n.var.loc18_25, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18_25: = bound_method %n.var.loc18_25, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_25: = bound_method %n.var.loc18_25, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc18_25: = bound_method %n.var.loc18_25, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18_25: %ptr.843 = addr_of %n.var.loc18_25 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_25: init %empty_tuple.type = call %bound_method.loc18_25(%addr.loc18_25) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18_25: init %empty_tuple.type = call %bound_method.loc18_25(%addr.loc18_25) // CHECK:STDOUT: %facet_value.loc18_5: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_5: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_5 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_5: = bound_method %n.var.loc18_5, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18_5: = bound_method %n.var.loc18_5, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %n.var.loc18_5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %n.var.loc18_5, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18_5: %ptr.843 = addr_of %n.var.loc18_5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_5: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18_5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18_5: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18_5) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/include_in_dumps.carbon b/toolchain/check/testdata/basics/include_in_dumps.carbon index 62022a963fa7f..c84f8819fd4b6 100644 --- a/toolchain/check/testdata/basics/include_in_dumps.carbon +++ b/toolchain/check/testdata/basics/include_in_dumps.carbon @@ -115,8 +115,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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.Op.type: type = fn_type @I.Op [concrete] // CHECK:STDOUT: %I.Op: %I.Op.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -137,16 +137,16 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: interface @I { // CHECK:STDOUT: // CHECK:STDOUT: %I.Op.decl: %I.Op.type = fn_decl @I.Op [concrete = constants.%I.Op] { -// CHECK:STDOUT: %self.patt: @I.Op.%pattern_type (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.Op.%pattern_type (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.Op.%pattern_type (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.Op.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.Op.%Self.as_type.loc8_15.1 (%Self.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type)] { +// CHECK:STDOUT: %self.param: @I.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc8_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc8_15.2: type = converted %Self.ref, %Self.as_type.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %.loc8_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.Op.%Self.as_type.loc8_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.Op.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -158,21 +158,21 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.Op(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.d22)] +// 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.3f7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.Op.%Self.as_type.loc8_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.Op.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.Op(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -192,8 +192,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.7d9 [concrete] // CHECK:STDOUT: %I.Op.type: type = fn_type @I.Op [concrete] // CHECK:STDOUT: %I.Op: %I.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %.2b2: type = fn_type_with_self_type %I.Op.type, %I.facet [concrete] @@ -273,8 +273,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.Op(imports.%Main.import_ref.de2: %I.type) [from "exclude/included_with_range.carbon"] { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.d22)] +// 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.3f7)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -283,8 +283,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- import_excluded.carbon 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 1186f268a7a44..89bcbd7f53e6b 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -239,44 +239,61 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name4: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name5: {name: name4, parent_scope: name_scope2, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name6: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name7: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name8: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name9: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name10: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name7: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name8: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name9: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name10: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name11: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name12: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name13: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name13: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name14: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name15: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name16: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name17: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name17: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name18: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name19: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name19: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name20: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name21: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name22: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name21: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name22: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name23: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name24: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name25: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name26: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name24: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name25: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name26: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name27: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name28: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name28: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name29: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name30: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name31: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name32: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name30: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name31: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name32: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name33: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name34: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name35: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name36: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name37: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name35: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name36: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name37: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name38: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name39: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name40: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name41: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name42: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name43: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} -// CHECK:STDOUT: entity_name44: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name40: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name41: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name42: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name43: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name44: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name45: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name46: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name47: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name48: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name49: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name50: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name51: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name52: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name53: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name54: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name55: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name56: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name57: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name58: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name59: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name60: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} +// CHECK:STDOUT: entity_name61: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: functions: // CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block13, return_slot_pattern: ir0.inst48, body: [inst_block20]} // CHECK:STDOUT: function1: {name: name4, parent_scope: name_scope2, return_slot_pattern: ir0.inst85} @@ -430,24 +447,24 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst79: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(ir0.inst80)} // CHECK:STDOUT: ir0.inst80: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} // CHECK:STDOUT: ir0.inst81: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst80)} -// CHECK:STDOUT: ir0.inst82: {kind: FacetAccessType, arg0: ir0.inst72, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst82: {kind: SymbolicBindingType, arg0: entity_name4, arg1: ir0.inst72, type: type(TypeType)} // CHECK:STDOUT: ir0.inst83: {kind: PatternType, arg0: ir0.inst82, type: type(TypeType)} // CHECK:STDOUT: ir0.inst84: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant19)} // CHECK:STDOUT: ir0.inst85: {kind: OutParamPattern, arg0: ir0.inst84, arg1: call_param1, type: type(symbolic_constant19)} -// CHECK:STDOUT: ir0.inst86: {kind: BindingPattern, arg0: entity_name7, type: type(symbolic_constant19)} +// CHECK:STDOUT: ir0.inst86: {kind: BindingPattern, arg0: entity_name8, type: type(symbolic_constant19)} // CHECK:STDOUT: ir0.inst87: {kind: ValueParamPattern, arg0: ir0.inst86, arg1: call_param0, type: type(symbolic_constant19)} // CHECK:STDOUT: ir0.inst88: {kind: ImportRefLoaded, arg0: import_ir_inst11, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst89: {kind: BindSymbolicName, arg0: entity_name4, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst90: {kind: FacetAccessType, arg0: ir0.inst89, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst90: {kind: SymbolicBindingType, arg0: entity_name4, arg1: ir0.inst89, type: type(TypeType)} // CHECK:STDOUT: ir0.inst91: {kind: PatternType, arg0: ir0.inst90, type: type(TypeType)} // CHECK:STDOUT: ir0.inst92: {kind: LookupImplWitness, arg0: ir0.inst27, arg1: specific_interface0, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst93: {kind: ImportRefUnloaded, arg0: import_ir_inst15, arg1: entity_name} // CHECK:STDOUT: ir0.inst94: {kind: ImplDecl, arg0: impl0, arg1: inst_block_empty} // CHECK:STDOUT: ir0.inst95: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst96: {kind: FacetAccessType, arg0: ir0.inst95, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst96: {kind: SymbolicBindingType, arg0: entity_name1, arg1: ir0.inst95, type: type(TypeType)} // CHECK:STDOUT: ir0.inst97: {kind: ConstType, arg0: ir0.inst96, type: type(TypeType)} // CHECK:STDOUT: ir0.inst98: {kind: PatternType, arg0: ir0.inst71, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst99: {kind: SymbolicBindingPattern, arg0: entity_name10, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst99: {kind: SymbolicBindingPattern, arg0: entity_name13, type: type(ir0.inst98)} // CHECK:STDOUT: ir0.inst100: {kind: ImportRefLoaded, arg0: import_ir_inst18, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst101: {kind: ImportRefLoaded, arg0: import_ir_inst19, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: ir0.inst102: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(TypeType)} @@ -455,7 +472,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst104: {kind: ImplWitnessTable, arg0: inst_block30, arg1: impl0} // CHECK:STDOUT: ir0.inst105: {kind: ImplWitness, arg0: ir0.inst104, arg1: specific2, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst106: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst107: {kind: FacetAccessType, arg0: ir0.inst106, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst107: {kind: SymbolicBindingType, arg0: entity_name1, arg1: ir0.inst106, type: type(TypeType)} // CHECK:STDOUT: ir0.inst108: {kind: ConstType, arg0: ir0.inst107, type: type(TypeType)} // CHECK:STDOUT: ir0.inst109: {kind: ImplWitness, arg0: ir0.inst104, arg1: specific3, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst110: {kind: FunctionDecl, arg0: function2, arg1: inst_block_empty, type: type(symbolic_constant38)} @@ -464,13 +481,13 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst113: {kind: PatternType, arg0: ir0.inst97, type: type(TypeType)} // CHECK:STDOUT: ir0.inst114: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant43)} // CHECK:STDOUT: ir0.inst115: {kind: OutParamPattern, arg0: ir0.inst114, arg1: call_param1, type: type(symbolic_constant43)} -// CHECK:STDOUT: ir0.inst116: {kind: BindingPattern, arg0: entity_name13, type: type(symbolic_constant43)} +// CHECK:STDOUT: ir0.inst116: {kind: BindingPattern, arg0: entity_name17, type: type(symbolic_constant43)} // CHECK:STDOUT: ir0.inst117: {kind: ValueParamPattern, arg0: ir0.inst116, arg1: call_param0, type: type(symbolic_constant43)} // CHECK:STDOUT: ir0.inst118: {kind: ImportRefLoaded, arg0: import_ir_inst32, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst119: {kind: FunctionType, arg0: function2, arg1: specific3, type: type(TypeType)} // CHECK:STDOUT: ir0.inst120: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant45)} // CHECK:STDOUT: ir0.inst121: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst122: {kind: FacetAccessType, arg0: ir0.inst121, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst122: {kind: SymbolicBindingType, arg0: entity_name1, arg1: ir0.inst121, type: type(TypeType)} // CHECK:STDOUT: ir0.inst123: {kind: ConstType, arg0: ir0.inst122, type: type(TypeType)} // CHECK:STDOUT: ir0.inst124: {kind: PatternType, arg0: ir0.inst123, type: type(TypeType)} // CHECK:STDOUT: ir0.inst125: {kind: RequireCompleteType, arg0: ir0.inst97, type: type(inst(WitnessType))} @@ -504,7 +521,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst153: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: ir0.inst154: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst155: {kind: ImplDecl, arg0: impl5, arg1: inst_block_empty} -// CHECK:STDOUT: ir0.inst156: {kind: SymbolicBindingPattern, arg0: entity_name16, type: type(ir0.inst23)} +// CHECK:STDOUT: ir0.inst156: {kind: SymbolicBindingPattern, arg0: entity_name21, type: type(ir0.inst23)} // CHECK:STDOUT: ir0.inst157: {kind: ImportRefLoaded, arg0: import_ir_inst64, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: ir0.inst158: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: ir0.inst159: {kind: ImportRefLoaded, arg0: import_ir_inst66, arg1: entity_name, type: type(TypeType)} @@ -519,7 +536,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst168: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant81)} // CHECK:STDOUT: ir0.inst169: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant85)} // CHECK:STDOUT: ir0.inst170: {kind: OutParamPattern, arg0: ir0.inst169, arg1: call_param1, type: type(symbolic_constant85)} -// CHECK:STDOUT: ir0.inst171: {kind: BindingPattern, arg0: entity_name19, type: type(symbolic_constant85)} +// CHECK:STDOUT: ir0.inst171: {kind: BindingPattern, arg0: entity_name24, type: type(symbolic_constant85)} // CHECK:STDOUT: ir0.inst172: {kind: ValueParamPattern, arg0: ir0.inst171, arg1: call_param0, type: type(symbolic_constant85)} // CHECK:STDOUT: ir0.inst173: {kind: ImportRefLoaded, arg0: import_ir_inst77, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: ir0.inst174: {kind: FunctionType, arg0: function3, arg1: specific8, type: type(TypeType)} @@ -538,11 +555,11 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst187: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: ir0.inst188: {kind: ImportRefUnloaded, arg0: import_ir_inst92, arg1: entity_name} // CHECK:STDOUT: ir0.inst189: {kind: ImplDecl, arg0: impl8, arg1: inst_block_empty} -// CHECK:STDOUT: ir0.inst190: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst191: {kind: FacetAccessType, arg0: ir0.inst190, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst190: {kind: BindSymbolicName, arg0: entity_name26, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst191: {kind: SymbolicBindingType, arg0: entity_name26, arg1: ir0.inst190, type: type(TypeType)} // CHECK:STDOUT: ir0.inst192: {kind: TupleType, arg0: inst_block57, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst193: {kind: SymbolicBindingPattern, arg0: entity_name22, type: type(ir0.inst98)} -// CHECK:STDOUT: ir0.inst194: {kind: SymbolicBindingPattern, arg0: entity_name23, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst193: {kind: SymbolicBindingPattern, arg0: entity_name28, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst194: {kind: SymbolicBindingPattern, arg0: entity_name29, type: type(ir0.inst98)} // CHECK:STDOUT: ir0.inst195: {kind: ImportRefLoaded, arg0: import_ir_inst96, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst196: {kind: ImportRefLoaded, arg0: import_ir_inst97, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst197: {kind: ImportRefLoaded, arg0: import_ir_inst98, arg1: entity_name, type: type(TypeType)} @@ -551,9 +568,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst200: {kind: ImplWitnessTable, arg0: inst_block60, arg1: impl8} // CHECK:STDOUT: ir0.inst201: {kind: ImplWitness, arg0: ir0.inst200, arg1: specific10, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst202: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst203: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst204: {kind: FacetAccessType, arg0: ir0.inst202, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst205: {kind: FacetAccessType, arg0: ir0.inst203, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst203: {kind: BindSymbolicName, arg0: entity_name26, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst204: {kind: SymbolicBindingType, arg0: entity_name1, arg1: ir0.inst202, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst205: {kind: SymbolicBindingType, arg0: entity_name26, arg1: ir0.inst203, type: type(TypeType)} // CHECK:STDOUT: ir0.inst206: {kind: TupleType, arg0: inst_block62, type: type(TypeType)} // CHECK:STDOUT: ir0.inst207: {kind: ImplWitness, arg0: ir0.inst200, arg1: specific11, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst208: {kind: FunctionDecl, arg0: function4, arg1: inst_block_empty, type: type(symbolic_constant114)} @@ -562,16 +579,16 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst211: {kind: PatternType, arg0: ir0.inst192, type: type(TypeType)} // CHECK:STDOUT: ir0.inst212: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant119)} // CHECK:STDOUT: ir0.inst213: {kind: OutParamPattern, arg0: ir0.inst212, arg1: call_param1, type: type(symbolic_constant119)} -// CHECK:STDOUT: ir0.inst214: {kind: BindingPattern, arg0: entity_name28, type: type(symbolic_constant119)} +// CHECK:STDOUT: ir0.inst214: {kind: BindingPattern, arg0: entity_name36, type: type(symbolic_constant119)} // CHECK:STDOUT: ir0.inst215: {kind: ValueParamPattern, arg0: ir0.inst214, arg1: call_param0, type: type(symbolic_constant119)} // CHECK:STDOUT: ir0.inst216: {kind: ImportRefLoaded, arg0: import_ir_inst113, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst217: {kind: ImportRefLoaded, arg0: import_ir_inst114, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst218: {kind: FunctionType, arg0: function4, arg1: specific11, type: type(TypeType)} // CHECK:STDOUT: ir0.inst219: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant121)} // CHECK:STDOUT: ir0.inst220: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst221: {kind: FacetAccessType, arg0: ir0.inst220, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst222: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst223: {kind: FacetAccessType, arg0: ir0.inst222, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst221: {kind: SymbolicBindingType, arg0: entity_name1, arg1: ir0.inst220, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst222: {kind: BindSymbolicName, arg0: entity_name26, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst223: {kind: SymbolicBindingType, arg0: entity_name26, arg1: ir0.inst222, type: type(TypeType)} // CHECK:STDOUT: ir0.inst224: {kind: TupleType, arg0: inst_block70, type: type(TypeType)} // CHECK:STDOUT: ir0.inst225: {kind: PatternType, arg0: ir0.inst224, type: type(TypeType)} // CHECK:STDOUT: ir0.inst226: {kind: RequireCompleteType, arg0: ir0.inst192, type: type(inst(WitnessType))} @@ -594,12 +611,12 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst243: {kind: PatternType, arg0: ir0.inst191, type: type(TypeType)} // CHECK:STDOUT: ir0.inst244: {kind: ImportRefUnloaded, arg0: import_ir_inst134, arg1: entity_name} // CHECK:STDOUT: ir0.inst245: {kind: ImplDecl, arg0: impl9, arg1: inst_block_empty} -// CHECK:STDOUT: ir0.inst246: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst247: {kind: FacetAccessType, arg0: ir0.inst246, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst246: {kind: BindSymbolicName, arg0: entity_name41, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst247: {kind: SymbolicBindingType, arg0: entity_name41, arg1: ir0.inst246, type: type(TypeType)} // CHECK:STDOUT: ir0.inst248: {kind: TupleType, arg0: inst_block79, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst249: {kind: SymbolicBindingPattern, arg0: entity_name32, type: type(ir0.inst98)} -// CHECK:STDOUT: ir0.inst250: {kind: SymbolicBindingPattern, arg0: entity_name33, type: type(ir0.inst98)} -// CHECK:STDOUT: ir0.inst251: {kind: SymbolicBindingPattern, arg0: entity_name34, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst249: {kind: SymbolicBindingPattern, arg0: entity_name43, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst250: {kind: SymbolicBindingPattern, arg0: entity_name44, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst251: {kind: SymbolicBindingPattern, arg0: entity_name45, type: type(ir0.inst98)} // CHECK:STDOUT: ir0.inst252: {kind: ImportRefLoaded, arg0: import_ir_inst139, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst253: {kind: ImportRefLoaded, arg0: import_ir_inst140, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst254: {kind: ImportRefLoaded, arg0: import_ir_inst141, arg1: entity_name, type: type(ir0.inst71)} @@ -609,11 +626,11 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst258: {kind: ImplWitnessTable, arg0: inst_block82, arg1: impl9} // CHECK:STDOUT: ir0.inst259: {kind: ImplWitness, arg0: ir0.inst258, arg1: specific16, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst260: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst261: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst262: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst263: {kind: FacetAccessType, arg0: ir0.inst260, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst264: {kind: FacetAccessType, arg0: ir0.inst261, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst265: {kind: FacetAccessType, arg0: ir0.inst262, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst261: {kind: BindSymbolicName, arg0: entity_name26, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst262: {kind: BindSymbolicName, arg0: entity_name41, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst263: {kind: SymbolicBindingType, arg0: entity_name1, arg1: ir0.inst260, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst264: {kind: SymbolicBindingType, arg0: entity_name26, arg1: ir0.inst261, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst265: {kind: SymbolicBindingType, arg0: entity_name41, arg1: ir0.inst262, type: type(TypeType)} // CHECK:STDOUT: ir0.inst266: {kind: TupleType, arg0: inst_block84, type: type(TypeType)} // CHECK:STDOUT: ir0.inst267: {kind: ImplWitness, arg0: ir0.inst258, arg1: specific17, type: type(inst(WitnessType))} // CHECK:STDOUT: ir0.inst268: {kind: FunctionDecl, arg0: function5, arg1: inst_block_empty, type: type(symbolic_constant186)} @@ -622,7 +639,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst271: {kind: PatternType, arg0: ir0.inst248, type: type(TypeType)} // CHECK:STDOUT: ir0.inst272: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant191)} // CHECK:STDOUT: ir0.inst273: {kind: OutParamPattern, arg0: ir0.inst272, arg1: call_param1, type: type(symbolic_constant191)} -// CHECK:STDOUT: ir0.inst274: {kind: BindingPattern, arg0: entity_name41, type: type(symbolic_constant191)} +// CHECK:STDOUT: ir0.inst274: {kind: BindingPattern, arg0: entity_name55, type: type(symbolic_constant191)} // CHECK:STDOUT: ir0.inst275: {kind: ValueParamPattern, arg0: ir0.inst274, arg1: call_param0, type: type(symbolic_constant191)} // CHECK:STDOUT: ir0.inst276: {kind: ImportRefLoaded, arg0: import_ir_inst159, arg1: entity_name, type: type(ir0.inst71)} // CHECK:STDOUT: ir0.inst277: {kind: ImportRefLoaded, arg0: import_ir_inst160, arg1: entity_name, type: type(ir0.inst71)} @@ -630,11 +647,11 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: ir0.inst279: {kind: FunctionType, arg0: function5, arg1: specific17, type: type(TypeType)} // CHECK:STDOUT: ir0.inst280: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant193)} // CHECK:STDOUT: ir0.inst281: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst282: {kind: FacetAccessType, arg0: ir0.inst281, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst283: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst284: {kind: FacetAccessType, arg0: ir0.inst283, type: type(TypeType)} -// CHECK:STDOUT: ir0.inst285: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(ir0.inst71)} -// CHECK:STDOUT: ir0.inst286: {kind: FacetAccessType, arg0: ir0.inst285, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst282: {kind: SymbolicBindingType, arg0: entity_name1, arg1: ir0.inst281, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst283: {kind: BindSymbolicName, arg0: entity_name26, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst284: {kind: SymbolicBindingType, arg0: entity_name26, arg1: ir0.inst283, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst285: {kind: BindSymbolicName, arg0: entity_name41, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst286: {kind: SymbolicBindingType, arg0: entity_name41, arg1: ir0.inst285, type: type(TypeType)} // CHECK:STDOUT: ir0.inst287: {kind: TupleType, arg0: inst_block92, type: type(TypeType)} // CHECK:STDOUT: ir0.inst288: {kind: PatternType, arg0: ir0.inst287, type: type(TypeType)} // CHECK:STDOUT: ir0.inst289: {kind: RequireCompleteType, arg0: ir0.inst248, type: type(inst(WitnessType))} diff --git a/toolchain/check/testdata/class/access_modifers.carbon b/toolchain/check/testdata/class/access_modifers.carbon index 9824931bb3d8d..45744df31e38b 100644 --- a/toolchain/check/testdata/class/access_modifers.carbon +++ b/toolchain/check/testdata/class/access_modifers.carbon @@ -196,10 +196,10 @@ class A { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Circle, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.25b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.031: %DestroyT.as_type.as.Destroy.impl.Op.type.25b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.585: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.c91: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.585 = struct_value () [concrete] // CHECK:STDOUT: %ptr.54d: type = ptr_type %Circle [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.031, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.c91, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -338,11 +338,11 @@ class A { // CHECK:STDOUT: %SomeInternalFunction.ref: = name_ref SomeInternalFunction, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Circle, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_36.4: %type_where = converted constants.%Circle, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.031 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.031, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c91 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c91, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.54d = addr_of %.loc18_36.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/adapter/adapt_copy.carbon b/toolchain/check/testdata/class/adapter/adapt_copy.carbon index 36f577cf303d0..a6cca2ff3c886 100644 --- a/toolchain/check/testdata/class/adapter/adapt_copy.carbon +++ b/toolchain/check/testdata/class/adapter/adapt_copy.carbon @@ -185,10 +185,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.567: %type_where = facet_value %AdaptCopyable, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2be: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.567) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1b8: %DestroyT.as_type.as.Destroy.impl.Op.type.2be = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ab6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.567) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.dd7: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ab6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.4c1: type = ptr_type %AdaptCopyable [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6d3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.1b8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.567) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.166: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.dd7, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.567) [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -207,9 +207,9 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.6a4: %type_where = facet_value %tuple.type.2a3, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.285: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.6a4) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a01: %DestroyT.as_type.as.Destroy.impl.Op.type.285 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.610: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.8a01, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.6a4) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.fb2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.6a4) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.4b1: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.fb2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.272: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.4b1, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.6a4) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -302,11 +302,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc24: %AdaptCopyable = bind_value %d.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptCopyable, () [concrete = constants.%facet_value.567] // CHECK:STDOUT: %.loc16: %type_where = converted constants.%AdaptCopyable, %facet_value [concrete = constants.%facet_value.567] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1b8 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.1b8, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.567) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6d3] -// CHECK:STDOUT: %bound_method: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.dd7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.dd7, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.567) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.166] +// CHECK:STDOUT: %bound_method: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.4c1 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -358,11 +358,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc43_11: init %tuple.type.2a3 = converted %d.ref, %.loc43_10.5 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.2a3, () [concrete = constants.%facet_value.6a4] // CHECK:STDOUT: %.loc35_3.2: %type_where = converted constants.%tuple.type.2a3, %facet_value [concrete = constants.%facet_value.6a4] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8a01 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.8a01, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.6a4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.610] -// CHECK:STDOUT: %bound_method.loc35_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.4b1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.4b1, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.6a4) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.272] +// CHECK:STDOUT: %bound_method.loc35_3: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c30 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc35_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc35_3(%addr) // CHECK:STDOUT: return %.loc43_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -395,10 +395,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.a7e: %type_where = facet_value %AdaptTuple, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.5a3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.a7e) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.002: %DestroyT.as_type.as.Destroy.impl.Op.type.5a3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a2d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.a7e) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b1b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a2d = struct_value () [concrete] // CHECK:STDOUT: %ptr.ca3: type = ptr_type %AdaptTuple [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.83b: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.002, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.a7e) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.305: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.b1b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.a7e) [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -415,10 +415,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9a3 [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.262: %type_where = facet_value %tuple.type.f69, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.3a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.262) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.030: %DestroyT.as_type.as.Destroy.impl.Op.type.3a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.327: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.262) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.18b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.327 = struct_value () [concrete] // CHECK:STDOUT: %ptr.ed5: type = ptr_type %tuple.type.f69 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.554: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.030, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.262) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.dce: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.18b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.262) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -560,11 +560,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.9: init %AdaptTuple = converted %d.ref, %.loc10_11.8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptTuple, () [concrete = constants.%facet_value.a7e] // CHECK:STDOUT: %.loc9_3.8: %type_where = converted constants.%AdaptTuple, %facet_value [concrete = constants.%facet_value.a7e] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.002 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.002, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.a7e) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.83b] -// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b1b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b1b, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.a7e) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.305] +// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ca3 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) // CHECK:STDOUT: return %.loc10_11.9 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -657,11 +657,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_11: init %tuple.type.f69 = converted %d.ref, %.loc15_10.12 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.f69, () [concrete = constants.%facet_value.262] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%tuple.type.f69, %facet_value [concrete = constants.%facet_value.262] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.030 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.030, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.262) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.554] -// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.18b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.18b, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.262) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.dce] +// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ed5 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) // CHECK:STDOUT: return %.loc15_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -680,10 +680,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AdaptNoncopyable, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.3de: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6f7: %DestroyT.as_type.as.Destroy.impl.Op.type.3de = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f8a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.e55: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f8a = struct_value () [concrete] // CHECK:STDOUT: %ptr.ed9: type = ptr_type %AdaptNoncopyable [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6f7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.e55, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -756,11 +756,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc28: %AdaptNoncopyable = bind_value %b.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptNoncopyable, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20: %type_where = converted constants.%AdaptNoncopyable, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6f7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6f7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e55 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e55, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ed9 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -796,10 +796,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AdaptNoncopyableIndirect, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.26a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.02b: %DestroyT.as_type.as.Destroy.impl.Op.type.26a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.08c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.926: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.08c = struct_value () [concrete] // CHECK:STDOUT: %ptr.921: type = ptr_type %AdaptNoncopyableIndirect [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.02b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.926, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -905,11 +905,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc34_11.5: %Noncopyable = bind_value %tuple.elem1.loc34 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptNoncopyableIndirect, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_3.4: %type_where = converted constants.%AdaptNoncopyableIndirect, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.02b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.02b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_3.3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.926 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.926, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc23_3.3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.921 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_3.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_3.3(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -941,10 +941,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.14c: %type_where = facet_value %AdaptStruct, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b5b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.14c) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.987: %DestroyT.as_type.as.Destroy.impl.Op.type.b5b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a77: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.14c) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.e5f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a77 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e10: type = ptr_type %AdaptStruct [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4f8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.987, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.14c) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f51: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.e5f, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.14c) [concrete] // CHECK:STDOUT: %UInt.type: type = generic_class_type @UInt [concrete] // CHECK:STDOUT: %UInt.generic: %UInt.type = struct_value () [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] @@ -962,10 +962,10 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.9a3 [concrete] // CHECK:STDOUT: %UInt.as.Copy.impl.Op.specific_fn: = specific_function %UInt.as.Copy.impl.Op.1bb, @UInt.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.03e: %type_where = facet_value %tuple.type.80b, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a7b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.03e) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4cc: %DestroyT.as_type.as.Destroy.impl.Op.type.a7b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.03e) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.41f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] // CHECK:STDOUT: %ptr.b09: type = ptr_type %tuple.type.80b [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0cd: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.4cc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.03e) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ee0: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.41f, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.03e) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1106,11 +1106,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc10_11.13: init %AdaptStruct = converted %h.ref, %.loc10_11.12 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AdaptStruct, () [concrete = constants.%facet_value.14c] // CHECK:STDOUT: %.loc9_3.12: %type_where = converted constants.%AdaptStruct, %facet_value [concrete = constants.%facet_value.14c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %h.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.987 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.987, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4f8] -// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %h.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %h.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e5f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e5f, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.14c) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f51] +// CHECK:STDOUT: %bound_method.loc9_3.5: = bound_method %h.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e10 = addr_of %h.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_3.5(%addr) // CHECK:STDOUT: return %.loc10_11.13 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1203,11 +1203,11 @@ fn InTuple(c: (AdaptStruct, u32)) -> (AdaptStruct, u32) { // CHECK:STDOUT: %.loc15_11: init %tuple.type.80b = converted %d.ref, %.loc15_10.16 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.80b, () [concrete = constants.%facet_value.03e] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%tuple.type.80b, %facet_value [concrete = constants.%facet_value.03e] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.4cc -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.4cc, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.03e) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0cd] -// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.41f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.41f, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.03e) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ee0] +// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.b09 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3(%addr) // CHECK:STDOUT: return %.loc15_11 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/derived_to_base.carbon b/toolchain/check/testdata/class/derived_to_base.carbon index b29f9f0ef645a..2972fbb28c737 100644 --- a/toolchain/check/testdata/class/derived_to_base.carbon +++ b/toolchain/check/testdata/class/derived_to_base.carbon @@ -193,8 +193,8 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %C.val: %C = struct_value (%B.val, %int_3.822) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -416,11 +416,11 @@ fn PassConstB(p: const B) { // CHECK:STDOUT: %a: %A = bind_name a, %.loc32_59.5 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc32_57.10: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc32_57.9, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc32_57.9, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc32_57.3: = bound_method %.loc32_57.9, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc32_57.3: = bound_method %.loc32_57.9, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc32_57.9 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc32_57.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc32_57.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/destroy_calls.carbon b/toolchain/check/testdata/class/destroy_calls.carbon index 5a9d5a083e8fd..53fea19c5cf1a 100644 --- a/toolchain/check/testdata/class/destroy_calls.carbon +++ b/toolchain/check/testdata/class/destroy_calls.carbon @@ -102,16 +102,16 @@ fn G() { F({}); } // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.5f2: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7d9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -147,25 +147,25 @@ fn G() { F({}); } // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc12: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc12: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.5f2] // CHECK:STDOUT: %.loc11: %type_where = converted constants.%B, %facet_value.loc11 [concrete = constants.%facet_value.5f2] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7d9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11: %ptr.e79 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc10: %type_where = converted constants.%A, %facet_value.loc10 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10: %ptr.6db = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -184,16 +184,16 @@ fn G() { F({}); } // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.5f2: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7d9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -236,25 +236,25 @@ fn G() { F({}); } // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc13: %type_where = converted constants.%C, %facet_value.loc13 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.5f2] // CHECK:STDOUT: %.loc11: %type_where = converted constants.%B, %facet_value.loc11 [concrete = constants.%facet_value.5f2] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7d9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11: %ptr.e79 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc10: %type_where = converted constants.%A, %facet_value.loc10 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10: %ptr.6db = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -275,16 +275,16 @@ fn G() { F({}); } // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.5f2: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5f2) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7d9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -314,25 +314,25 @@ fn G() { F({}); } // CHECK:STDOUT: %.loc14_10.2: ref %C = temporary %.loc14_10.1, %C.Make.call // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc14_10.3: %type_where = converted constants.%C, %facet_value.loc14 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_10.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_10.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_10.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_10.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.019 = addr_of %.loc14_10.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.5f2] // CHECK:STDOUT: %.loc13_10.3: %type_where = converted constants.%B, %facet_value.loc13 [concrete = constants.%facet_value.5f2] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_10.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_10.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7d9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_10.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_10.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13: %ptr.e79 = addr_of %.loc13_10.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc12_10.3: %type_where = converted constants.%A, %facet_value.loc12 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_10.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_10.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_10.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_10.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.6db = addr_of %.loc12_10.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -346,11 +346,11 @@ fn G() { F({}); } // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %D.113: type = class_type @D, @D(%C) [concrete] -// CHECK:STDOUT: %pattern_type.c957: type = pattern_type %D.113 [concrete] +// CHECK:STDOUT: %pattern_type.c95: type = pattern_type %D.113 [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %D.113, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6df: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d42: %DestroyT.as_type.as.Destroy.impl.Op.type.6df = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.994: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.e1c: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.994 = struct_value () [concrete] // CHECK:STDOUT: %ptr.22d: type = ptr_type %D.113 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -364,8 +364,8 @@ fn G() { F({}); } // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: %pattern_type.c957 = binding_pattern a [concrete] -// CHECK:STDOUT: %a.var_patt: %pattern_type.c957 = var_pattern %a.patt [concrete] +// CHECK:STDOUT: %a.patt: %pattern_type.c95 = binding_pattern a [concrete] +// CHECK:STDOUT: %a.var_patt: %pattern_type.c95 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %D.113 = var %a.var_patt // CHECK:STDOUT: %.loc9_13: type = splice_block %D [concrete = constants.%D.113] { @@ -376,11 +376,11 @@ fn G() { F({}); } // CHECK:STDOUT: %a: ref %D.113 = bind_name a, %a.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%D.113, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%D.113, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d42 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e1c // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.22d = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -403,33 +403,33 @@ fn G() { F({}); } // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.cb6: %type_where = facet_value %C.f2e, () [template] -// CHECK:STDOUT: %Destroy.impl_witness.688: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.cb6) [template] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.216: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.cb6) [template] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6d0: %DestroyT.as_type.as.Destroy.impl.Op.type.216 = struct_value () [template] +// CHECK:STDOUT: %Destroy.impl_witness.e6a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.cb6) [template] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f15: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.cb6) [template] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.e4b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f15 = struct_value () [template] // CHECK:STDOUT: %ptr.7d2: type = ptr_type %C.f2e [template] // CHECK:STDOUT: %require_complete.448: = require_complete_type %ptr.7d2 [template] -// CHECK:STDOUT: %Destroy.facet.945: %Destroy.type = facet_value %C.f2e, (%Destroy.impl_witness.688) [template] -// CHECK:STDOUT: %.86d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.945 [template] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ed1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6d0, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.cb6) [template] +// CHECK:STDOUT: %Destroy.facet.f3c: %Destroy.type = facet_value %C.f2e, (%Destroy.impl_witness.e6a) [template] +// CHECK:STDOUT: %.bba: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.f3c [template] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.e4b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.cb6) [template] // CHECK:STDOUT: %C.7a7: type = class_type @C, @C(%empty_struct_type) [concrete] // CHECK:STDOUT: %pattern_type.99a: type = pattern_type %C.7a7 [concrete] // CHECK:STDOUT: %facet_value.036: %type_where = facet_value %C.7a7, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.de7: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.036) [concrete] -// CHECK:STDOUT: %Destroy.facet.0b0: %Destroy.type = facet_value %C.7a7, (%Destroy.impl_witness.de7) [concrete] -// CHECK:STDOUT: %.e7d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.0b0 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ad: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.036) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.76a: %DestroyT.as_type.as.Destroy.impl.Op.type.6ad = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.5c6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.036) [concrete] +// CHECK:STDOUT: %Destroy.facet.666: %Destroy.type = facet_value %C.7a7, (%Destroy.impl_witness.5c6) [concrete] +// CHECK:STDOUT: %.dad: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.666 [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.996: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.036) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.03a: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.996 = struct_value () [concrete] // CHECK:STDOUT: %ptr.308: type = ptr_type %C.7a7 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e5: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.76a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.036) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.482: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.03a, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.036) [concrete] // CHECK:STDOUT: %complete_type.903: = complete_type_witness %ptr.308 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -449,12 +449,12 @@ fn G() { F({}); } // CHECK:STDOUT: %require_complete.loc7_13: = require_complete_type %C.loc7_13.2 [template = %require_complete.loc7_13 (constants.%require_complete.389)] // CHECK:STDOUT: %pattern_type: type = pattern_type %C.loc7_13.2 [template = %pattern_type (constants.%pattern_type.e5e)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %C.loc7_13.2, () [template = %facet_value.loc7_3.2 (constants.%facet_value.cb6)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [template = %Destroy.impl_witness (constants.%Destroy.impl_witness.688)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.loc7_13.2, (%Destroy.impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.945)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [template = %.loc7_3.2 (constants.%.86d)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [template = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.216)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.216) = struct_value () [template = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.6d0)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [template = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ed1)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [template = %Destroy.impl_witness (constants.%Destroy.impl_witness.e6a)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.loc7_13.2, (%Destroy.impl_witness) [template = %Destroy.facet (constants.%Destroy.facet.f3c)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [template = %.loc7_3.2 (constants.%.bba)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [template = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.f15)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.f15) = struct_value () [template = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e4b)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [template = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2ba)] // CHECK:STDOUT: %ptr: type = ptr_type %C.loc7_13.2 [template = %ptr (constants.%ptr.7d2)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr [template = %require_complete.loc7_3 (constants.%require_complete.448)] // CHECK:STDOUT: @@ -473,12 +473,12 @@ fn G() { F({}); } // CHECK:STDOUT: %v: ref @F.%C.loc7_13.2 (%C.f2e) = bind_name v, %v.var // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%C.f2e, () [template = %facet_value.loc7_3.2 (constants.%facet_value.cb6)] // CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%C.f2e, %facet_value.loc7_3.1 [template = %facet_value.loc7_3.2 (constants.%facet_value.cb6)] -// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.86d) = impl_witness_access constants.%Destroy.impl_witness.688, element0 [template = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.6d0)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.bba) = impl_witness_access constants.%Destroy.impl_witness.e6a, element0 [template = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e4b)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.cb6) [template = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ed1)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.cb6) [template = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2ba)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn // CHECK:STDOUT: %addr: @F.%ptr (%ptr.7d2) = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -495,12 +495,12 @@ fn G() { F({}); } // CHECK:STDOUT: %require_complete.loc7_13 => constants.%complete_type.357 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.99a // CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.036 -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.de7 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.0b0 -// CHECK:STDOUT: %.loc7_3.2 => constants.%.e7d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.6ad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.76a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e5 +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.5c6 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.666 +// CHECK:STDOUT: %.loc7_3.2 => constants.%.dad +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.996 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.03a +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.482 // CHECK:STDOUT: %ptr => constants.%ptr.308 // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.903 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/field_access.carbon b/toolchain/check/testdata/class/field_access.carbon index 1f61148bcc8c9..5651ba5f274cd 100644 --- a/toolchain/check/testdata/class/field_access.carbon +++ b/toolchain/check/testdata/class/field_access.carbon @@ -76,15 +76,15 @@ fn Run() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %facet_value.d3d: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.635: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ab0: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -206,25 +206,25 @@ fn Run() { // CHECK:STDOUT: %ck: ref %i32 = bind_name ck, %ck.var // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc25_3: %type_where = converted constants.%i32, %facet_value.loc25 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %ck.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %ck.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %ck.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %ck.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %ck.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc24_3: %type_where = converted constants.%i32, %facet_value.loc24 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %cj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %cj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %cj.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %cj.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc24: %ptr.235 = addr_of %cj.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value.d3d] // CHECK:STDOUT: %.loc21: %type_where = converted constants.%Class, %facet_value.loc21 [concrete = constants.%facet_value.d3d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ab0] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.e71 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/field_access_in_value.carbon b/toolchain/check/testdata/class/field_access_in_value.carbon index 45733b92d9a93..9a8c5eadce13a 100644 --- a/toolchain/check/testdata/class/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field_access_in_value.carbon @@ -77,15 +77,15 @@ fn Test() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %facet_value.d3d: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.635: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ab0: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -214,25 +214,25 @@ fn Test() { // CHECK:STDOUT: %ck: ref %i32 = bind_name ck, %ck.var // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc26_3: %type_where = converted constants.%i32, %facet_value.loc26 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %ck.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %ck.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %ck.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %ck.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.235 = addr_of %ck.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc25_3: %type_where = converted constants.%i32, %facet_value.loc25 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %cj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %cj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %cj.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %cj.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %cj.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value.d3d] // CHECK:STDOUT: %.loc21: %type_where = converted constants.%Class, %facet_value.loc21 [concrete = constants.%facet_value.d3d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %cv.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %cv.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %cv.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ab0] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %cv.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.e71 = addr_of %cv.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index b933b1bbc49e3..4d975994dc522 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -42,20 +42,20 @@ class Declaration(T:! type); // CHECK:STDOUT: %ptr.818: type = ptr_type %Class [symbolic] // CHECK:STDOUT: %pattern_type.e8f: type = pattern_type %ptr.818 [symbolic] // CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %ptr.f3f: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.f74: type = pattern_type %ptr.f3f [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %ptr.b04: type = ptr_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.fef: type = pattern_type %ptr.b04 [symbolic] // CHECK:STDOUT: %Class.GetAddr.type: type = fn_type @Class.GetAddr, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.GetAddr: %Class.GetAddr.type = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.38d: type = pattern_type %Class [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Class.GetValue.type: type = fn_type @Class.GetValue, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.GetValue: %Class.GetValue.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.07c: = 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: %require_complete.1cd: = 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: %complete_type: = complete_type_witness %struct_type.k [symbolic] -// CHECK:STDOUT: %require_complete.dd9: = require_complete_type %ptr.f3f [symbolic] +// CHECK:STDOUT: %require_complete.eb1: = require_complete_type %ptr.b04 [symbolic] // CHECK:STDOUT: %require_complete.70e: = require_complete_type %ptr.818 [symbolic] // CHECK:STDOUT: %require_complete.3e3: = require_complete_type %Class [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] @@ -65,11 +65,11 @@ class Declaration(T:! type); // CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.046: = lookup_impl_witness %ptr.f3f, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.f3f, (%Copy.lookup_impl_witness.046) [symbolic] -// CHECK:STDOUT: %.10a: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.823: %.10a = impl_witness_access %Copy.lookup_impl_witness.046, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.831: = specific_impl_function %impl.elem0.823, @Copy.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9e: = lookup_impl_witness %ptr.b04, @Copy [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.b04, (%Copy.lookup_impl_witness.d9e) [symbolic] +// CHECK:STDOUT: %.199: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.57c: %.199 = impl_witness_access %Copy.lookup_impl_witness.d9e, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.624: = specific_impl_function %impl.elem0.57c, @Copy.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: } @@ -110,11 +110,11 @@ 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_13.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.as_type.loc14_10.2: type = facet_access_type %T.loc5_13.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.07c)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_13.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.1cd)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_13.1) [symbolic = %Class (constants.%Class)] -// 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: %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: %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 { @@ -122,13 +122,13 @@ class Declaration(T:! type); // CHECK:STDOUT: %self.patt: @Class.GetAddr.%pattern_type.loc6_19 (%pattern_type.e8f) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_19 (%pattern_type.e8f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %.loc6_14: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_34 (%pattern_type.f74) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_34 (%pattern_type.f74) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_34 (%pattern_type.fef) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_34 (%pattern_type.fef) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc6_38.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_38.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc6_38: type = converted %T.ref, %T.as_type.loc6_38.2 [symbolic = %T.as_type.loc6_38.1 (constants.%T.as_type)] -// CHECK:STDOUT: %ptr.loc6_38.2: type = ptr_type %.loc6_38 [symbolic = %ptr.loc6_38.1 (constants.%ptr.f3f)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc6_38: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %ptr.loc6_38.2: type = ptr_type %.loc6_38 [symbolic = %ptr.loc6_38.1 (constants.%ptr.b04)] // CHECK:STDOUT: %self.param: @Class.GetAddr.%ptr.loc6_29.1 (%ptr.818) = value_param call_param0 // CHECK:STDOUT: %.loc6_29: type = splice_block %ptr.loc6_29.2 [symbolic = %ptr.loc6_29.1 (constants.%ptr.818)] { // CHECK:STDOUT: %.loc6_25: type = specific_constant constants.%Class, @Class(constants.%T.be8) [symbolic = %Class (constants.%Class)] @@ -136,30 +136,30 @@ class Declaration(T:! type); // CHECK:STDOUT: %ptr.loc6_29.2: type = ptr_type %Self.ref [symbolic = %ptr.loc6_29.1 (constants.%ptr.818)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Class.GetAddr.%ptr.loc6_29.1 (%ptr.818) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @Class.GetAddr.%ptr.loc6_38.1 (%ptr.f3f) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Class.GetAddr.%ptr.loc6_38.1 (%ptr.f3f) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Class.GetAddr.%ptr.loc6_38.1 (%ptr.b04) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Class.GetAddr.%ptr.loc6_38.1 (%ptr.b04) = 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.patt: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.38d) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_15 (%pattern_type.38d) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_29 (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.be8)] -// 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: type = converted %T.ref, %T.as_type.loc10_32.2 [symbolic = %T.as_type.loc10_32.1 (constants.%T.as_type)] +// 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: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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.be8) [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) = bind_name self, %self.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: %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: } // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: %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: %.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 @@ -184,33 +184,33 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %ptr.loc6_29.1: type = ptr_type %Class [symbolic = %ptr.loc6_29.1 (constants.%ptr.818)] // CHECK:STDOUT: %pattern_type.loc6_19: type = pattern_type %ptr.loc6_29.1 [symbolic = %pattern_type.loc6_19 (constants.%pattern_type.e8f)] -// CHECK:STDOUT: %T.as_type.loc6_38.1: type = facet_access_type %T [symbolic = %T.as_type.loc6_38.1 (constants.%T.as_type)] -// CHECK:STDOUT: %ptr.loc6_38.1: type = ptr_type %T.as_type.loc6_38.1 [symbolic = %ptr.loc6_38.1 (constants.%ptr.f3f)] -// CHECK:STDOUT: %pattern_type.loc6_34: type = pattern_type %ptr.loc6_38.1 [symbolic = %pattern_type.loc6_34 (constants.%pattern_type.f74)] +// 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_38.1: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc6_38.1 (constants.%ptr.b04)] +// CHECK:STDOUT: %pattern_type.loc6_34: type = pattern_type %ptr.loc6_38.1 [symbolic = %pattern_type.loc6_34 (constants.%pattern_type.fef)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_34: = require_complete_type %ptr.loc6_38.1 [symbolic = %require_complete.loc6_34 (constants.%require_complete.dd9)] +// CHECK:STDOUT: %require_complete.loc6_34: = require_complete_type %ptr.loc6_38.1 [symbolic = %require_complete.loc6_34 (constants.%require_complete.eb1)] // CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %ptr.loc6_29.1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.70e)] // CHECK:STDOUT: %require_complete.loc7: = require_complete_type %Class [symbolic = %require_complete.loc7 (constants.%require_complete.3e3)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc6_38.1 [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc6_38.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.046)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc6_38.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9e)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc6_38.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.10a)] -// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.GetAddr.%.loc7_12.2 (%.10a) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.823)] -// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.831)] +// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.199)] +// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.GetAddr.%.loc7_12.2 (%.199) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.57c)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.624)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.GetAddr.%ptr.loc6_29.1 (%ptr.818)) -> @Class.GetAddr.%ptr.loc6_38.1 (%ptr.f3f) { +// CHECK:STDOUT: fn(%self.param: @Class.GetAddr.%ptr.loc6_29.1 (%ptr.818)) -> @Class.GetAddr.%ptr.loc6_38.1 (%ptr.b04) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Class.GetAddr.%ptr.loc6_29.1 (%ptr.818) = name_ref self, %self // CHECK:STDOUT: %.loc7_17.1: ref @Class.GetAddr.%Class (%Class) = deref %self.ref // CHECK:STDOUT: %k.ref: @Class.GetAddr.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc14_8 [concrete = @Class.%.loc14_8] -// CHECK:STDOUT: %.loc7_17.2: ref @Class.GetAddr.%T.as_type.loc6_38.1 (%T.as_type) = class_element_access %.loc7_17.1, element0 -// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc6_38.1 (%ptr.f3f) = addr_of %.loc7_17.2 -// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.GetAddr.%.loc7_12.2 (%.10a) = impl_witness_access constants.%Copy.lookup_impl_witness.046, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.823)] +// CHECK:STDOUT: %.loc7_17.2: ref @Class.GetAddr.%T.binding.as_type (%T.binding.as_type) = class_element_access %.loc7_17.1, element0 +// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc6_38.1 (%ptr.b04) = addr_of %.loc7_17.2 +// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.GetAddr.%.loc7_12.2 (%.199) = impl_witness_access constants.%Copy.lookup_impl_witness.d9e, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.57c)] // 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.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.831)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.624)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %addr, %specific_impl_fn.loc7_12.1 -// CHECK:STDOUT: %.loc7_12.1: init @Class.GetAddr.%ptr.loc6_38.1 (%ptr.f3f) = call %bound_method.loc7_12.2(%addr) +// CHECK:STDOUT: %.loc7_12.1: init @Class.GetAddr.%ptr.loc6_38.1 (%ptr.b04) = call %bound_method.loc7_12.2(%addr) // CHECK:STDOUT: return %.loc7_12.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -219,30 +219,30 @@ class Declaration(T:! type); // CHECK:STDOUT: %T: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.be8)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc10_15: type = pattern_type %Class [symbolic = %pattern_type.loc10_15 (constants.%pattern_type.38d)] -// 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: %pattern_type.loc10_29: type = pattern_type %T.as_type.loc10_32.1 [symbolic = %pattern_type.loc10_29 (constants.%pattern_type.965801.1)] +// 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.loc10_29: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_29 (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.3e3)] -// 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.07c)] +// 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.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc11_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc11_16.4 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.GetValue.%.loc11_16.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.GetValue.%Class (%Class)) -> %return.param: @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) { +// CHECK:STDOUT: fn(%self.param: @Class.GetValue.%Class (%Class)) -> %return.param: @Class.GetValue.%T.binding.as_type (%T.binding.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.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) = bind_value %.loc11_16.1 +// 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) = bind_value %.loc11_16.1 // CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.GetValue.%.loc11_16.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 -// CHECK:STDOUT: %.loc10_29: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc11_16.3: init @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = call %bound_method.loc11_16.2(%.loc11_16.2) to %.loc10_29 +// CHECK:STDOUT: %.loc10_29: ref @Class.GetValue.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc11_16.3: init @Class.GetValue.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc11_16.2(%.loc11_16.2) to %.loc10_29 // CHECK:STDOUT: return %.loc11_16.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -255,8 +255,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.as_type.loc14_10.2 => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.k => constants.%struct_type.k @@ -268,17 +268,17 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %ptr.loc6_29.1 => constants.%ptr.818 // CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.e8f -// CHECK:STDOUT: %T.as_type.loc6_38.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc6_38.1 => constants.%ptr.f3f -// CHECK:STDOUT: %pattern_type.loc6_34 => constants.%pattern_type.f74 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %ptr.loc6_38.1 => constants.%ptr.b04 +// CHECK:STDOUT: %pattern_type.loc6_34 => constants.%pattern_type.fef // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetValue(constants.%T.be8) { // CHECK:STDOUT: %T => constants.%T.be8 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %pattern_type.loc10_15 => constants.%pattern_type.38d -// CHECK:STDOUT: %T.as_type.loc10_32.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc10_29 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc10_29 => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Declaration(constants.%T.8b3) { diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index edad4bd934d60..cc2006a96c5b2 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -64,40 +64,40 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.afd: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.6cd: %Int.as.Copy.impl.Op.type.afd = struct_value () [symbolic] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %require_complete.07c867.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.1cd77c.1: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.1: = lookup_impl_witness %T.be8, @Copy [symbolic] // CHECK:STDOUT: %.427cc3.1: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] // CHECK:STDOUT: %impl.elem0.168dc4.1: %.427cc3.1 = impl_witness_access %Copy.lookup_impl_witness.e15cec.1, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.2cedd6.1: = specific_impl_function %impl.elem0.168dc4.1, @Copy.Op(%T.be8) [symbolic] -// CHECK:STDOUT: %pattern_type.965801.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.2: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.276: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.f59: %Int.as.Copy.impl.Op.type.276 = struct_value () [concrete] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Class.a5ccb5.1: type = class_type @Class, @Class(%T.as_type) [symbolic] -// CHECK:STDOUT: %pattern_type.0a354e.1: type = pattern_type %Class.a5ccb5.1 [symbolic] +// CHECK:STDOUT: %Class.09119d.1: type = class_type @Class, @Class(%T.binding.as_type) [symbolic] +// CHECK:STDOUT: %pattern_type.4bf21b.1: type = pattern_type %Class.09119d.1 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Class.elem.14abad.1: type = unbound_element_type %Class.a5ccb5.1, %T.as_type [symbolic] -// CHECK:STDOUT: %struct_type.x.4196c2.1: type = struct_type {.x: %T.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.1d8a5e.1: = complete_type_witness %struct_type.x.4196c2.1 [symbolic] -// CHECK:STDOUT: %require_complete.92d706.1: = require_complete_type %Class.a5ccb5.1 [symbolic] +// CHECK:STDOUT: %Class.elem.bb02b4.1: type = unbound_element_type %Class.09119d.1, %T.binding.as_type [symbolic] +// CHECK:STDOUT: %struct_type.x.bd04be.1: type = struct_type {.x: %T.binding.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.ca9a75.1: = complete_type_witness %struct_type.x.bd04be.1 [symbolic] +// CHECK:STDOUT: %require_complete.34f946.1: = require_complete_type %Class.09119d.1 [symbolic] // CHECK:STDOUT: %U.be8: %Copy.type = bind_symbolic_name U, 0 [symbolic] -// CHECK:STDOUT: %U.as_type.870: type = facet_access_type %U.be8 [symbolic] -// CHECK:STDOUT: %Class.a5ccb5.2: type = class_type @Class, @Class(%U.as_type.870) [symbolic] -// CHECK:STDOUT: %pattern_type.0a354e.2: type = pattern_type %Class.a5ccb5.2 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.3: type = pattern_type %U.as_type.870 [symbolic] +// CHECK:STDOUT: %U.binding.as_type.2a0: type = symbolic_binding_type U, 0, %U.be8 [symbolic] +// CHECK:STDOUT: %Class.09119d.2: type = class_type @Class, @Class(%U.binding.as_type.2a0) [symbolic] +// CHECK:STDOUT: %pattern_type.4bf21b.2: type = pattern_type %Class.09119d.2 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.3: type = pattern_type %U.binding.as_type.2a0 [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.07c867.2: = require_complete_type %U.as_type.870 [symbolic] -// CHECK:STDOUT: %Class.elem.14abad.2: type = unbound_element_type %Class.a5ccb5.2, %U.as_type.870 [symbolic] -// CHECK:STDOUT: %struct_type.x.4196c2.2: type = struct_type {.x: %U.as_type.870} [symbolic] -// CHECK:STDOUT: %complete_type.1d8a5e.2: = complete_type_witness %struct_type.x.4196c2.2 [symbolic] -// CHECK:STDOUT: %require_complete.92d706.2: = require_complete_type %Class.a5ccb5.2 [symbolic] +// CHECK:STDOUT: %require_complete.1cd77c.2: = require_complete_type %U.binding.as_type.2a0 [symbolic] +// CHECK:STDOUT: %Class.elem.bb02b4.2: type = unbound_element_type %Class.09119d.2, %U.binding.as_type.2a0 [symbolic] +// CHECK:STDOUT: %struct_type.x.bd04be.2: type = struct_type {.x: %U.binding.as_type.2a0} [symbolic] +// CHECK:STDOUT: %complete_type.ca9a75.2: = complete_type_witness %struct_type.x.bd04be.2 [symbolic] +// CHECK:STDOUT: %require_complete.34f946.2: = require_complete_type %Class.09119d.2 [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.2: = lookup_impl_witness %U.be8, @Copy [symbolic] // CHECK:STDOUT: %.427cc3.2: type = fn_type_with_self_type %Copy.Op.type, %U.be8 [symbolic] // CHECK:STDOUT: %impl.elem0.168dc4.2: %.427cc3.2 = impl_witness_access %Copy.lookup_impl_witness.e15cec.2, element0 [symbolic] @@ -145,59 +145,59 @@ 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.322 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_21 (%pattern_type.0a354e.1) = binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_21 (%pattern_type.0a354e.1) = value_param_pattern %c.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_34 (%pattern_type.965801.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_34 (%pattern_type.965801.2) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_21 (%pattern_type.4bf21b.1) = binding_pattern c [concrete] +// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_21 (%pattern_type.4bf21b.1) = value_param_pattern %c.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_34 (%pattern_type.17e4b7.2) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_34 (%pattern_type.17e4b7.2) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13_37: %Copy.type = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T.be8)] -// 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: type = converted %T.ref.loc13_37, %T.as_type.loc13_37 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc13_37, %T.as_type.loc13_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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_6.2: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T.be8)] -// CHECK:STDOUT: %c.param: @G.%Class.loc13_31.1 (%Class.a5ccb5.1) = value_param call_param0 -// CHECK:STDOUT: %.loc13_31.1: type = splice_block %Class.loc13_31.2 [symbolic = %Class.loc13_31.1 (constants.%Class.a5ccb5.1)] { +// CHECK:STDOUT: %c.param: @G.%Class.loc13_31.1 (%Class.09119d.1) = value_param call_param0 +// CHECK:STDOUT: %.loc13_31.1: type = splice_block %Class.loc13_31.2 [symbolic = %Class.loc13_31.1 (constants.%Class.09119d.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_6.2 [symbolic = %T.loc13_6.1 (constants.%T.be8)] -// 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.a5ccb5.1)] +// 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.09119d.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @G.%Class.loc13_31.1 (%Class.a5ccb5.1) = bind_name 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: %c: @G.%Class.loc13_31.1 (%Class.09119d.1) = bind_name 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: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %U.patt: %pattern_type.322 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_21 (%pattern_type.0a354e.2) = binding_pattern c [concrete] -// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_21 (%pattern_type.0a354e.2) = value_param_pattern %c.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_34 (%pattern_type.965801.3) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_34 (%pattern_type.965801.3) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_21 (%pattern_type.4bf21b.2) = binding_pattern c [concrete] +// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_21 (%pattern_type.4bf21b.2) = value_param_pattern %c.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_34 (%pattern_type.17e4b7.3) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_34 (%pattern_type.17e4b7.3) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc17_37: %Copy.type = name_ref U, %U.loc17_6.2 [symbolic = %U.loc17_6.1 (constants.%U.be8)] -// 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.870)] -// CHECK:STDOUT: %.loc17_37: type = converted %U.ref.loc17_37, %U.as_type.loc17_37 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.870)] +// 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.2a0)] +// CHECK:STDOUT: %.loc17_37: type = converted %U.ref.loc17_37, %U.as_type.loc17_37 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] // 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_6.2: %Copy.type = bind_symbolic_name U, 0 [symbolic = %U.loc17_6.1 (constants.%U.be8)] -// CHECK:STDOUT: %c.param: @H.%Class.loc17_31.1 (%Class.a5ccb5.2) = value_param call_param0 -// CHECK:STDOUT: %.loc17_31.1: type = splice_block %Class.loc17_31.2 [symbolic = %Class.loc17_31.1 (constants.%Class.a5ccb5.2)] { +// CHECK:STDOUT: %c.param: @H.%Class.loc17_31.1 (%Class.09119d.2) = value_param call_param0 +// CHECK:STDOUT: %.loc17_31.1: type = splice_block %Class.loc17_31.2 [symbolic = %Class.loc17_31.1 (constants.%Class.09119d.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_6.2 [symbolic = %U.loc17_6.1 (constants.%U.be8)] -// 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.870)] -// 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.870)] -// CHECK:STDOUT: %Class.loc17_31.2: type = class_type @Class, @Class(constants.%U.as_type.870) [symbolic = %Class.loc17_31.1 (constants.%Class.a5ccb5.2)] +// 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.2a0)] +// 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.2a0)] +// CHECK:STDOUT: %Class.loc17_31.2: type = class_type @Class, @Class(constants.%U.binding.as_type.2a0) [symbolic = %Class.loc17_31.1 (constants.%Class.09119d.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @H.%Class.loc17_31.1 (%Class.a5ccb5.2) = bind_name c, %c.param -// CHECK:STDOUT: %return.param: ref @H.%U.as_type.loc17_31.1 (%U.as_type.870) = out_param call_param1 -// CHECK:STDOUT: %return: ref @H.%U.as_type.loc17_31.1 (%U.as_type.870) = return_slot %return.param +// CHECK:STDOUT: %c: @H.%Class.loc17_31.1 (%Class.09119d.2) = bind_name c, %c.param +// CHECK:STDOUT: %return.param: ref @H.%U.binding.as_type (%U.binding.as_type.2a0) = out_param call_param1 +// CHECK:STDOUT: %return: ref @H.%U.binding.as_type (%U.binding.as_type.2a0) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -240,64 +240,64 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc13_6.2: %Copy.type) { // CHECK:STDOUT: %T.loc13_6.1: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc13_31.1: type = facet_access_type %T.loc13_6.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.a5ccb5.1)] -// CHECK:STDOUT: %pattern_type.loc13_21: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_21 (constants.%pattern_type.0a354e.1)] -// CHECK:STDOUT: %pattern_type.loc13_34: type = pattern_type %T.as_type.loc13_31.1 [symbolic = %pattern_type.loc13_34 (constants.%pattern_type.965801.2)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc13_6.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.09119d.1)] +// CHECK:STDOUT: %pattern_type.loc13_21: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_21 (constants.%pattern_type.4bf21b.1)] +// CHECK:STDOUT: %pattern_type.loc13_34: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc13_34 (constants.%pattern_type.17e4b7.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_34: = require_complete_type %T.as_type.loc13_31.1 [symbolic = %require_complete.loc13_34 (constants.%require_complete.07c867.1)] -// CHECK:STDOUT: %require_complete.loc13_22: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13_22 (constants.%require_complete.92d706.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.14abad.1)] +// CHECK:STDOUT: %require_complete.loc13_34: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc13_34 (constants.%require_complete.1cd77c.1)] +// CHECK:STDOUT: %require_complete.loc13_22: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13_22 (constants.%require_complete.34f946.1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.bb02b4.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.1)] // CHECK:STDOUT: %.loc14_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc13_6.1 [symbolic = %.loc14_11.4 (constants.%.427cc3.1)] // CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.4 (%.427cc3.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.168dc4.1)] // CHECK:STDOUT: %specific_impl_fn.loc14_11.2: = specific_impl_function %impl.elem0.loc14_11.2, @Copy.Op(%T.loc13_6.1) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.2cedd6.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.a5ccb5.1)) -> %return.param: @G.%T.as_type.loc13_31.1 (%T.as_type) { +// CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.09119d.1)) -> %return.param: @G.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @G.%Class.loc13_31.1 (%Class.a5ccb5.1) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.14abad.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) = bind_value %.loc14_11.1 +// CHECK:STDOUT: %c.ref: @G.%Class.loc13_31.1 (%Class.09119d.1) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.bb02b4.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) = bind_value %.loc14_11.1 // CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.4 (%.427cc3.1) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.168dc4.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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.2cedd6.1)] // CHECK:STDOUT: %bound_method.loc14_11.2: = bound_method %.loc14_11.2, %specific_impl_fn.loc14_11.1 -// CHECK:STDOUT: %.loc13_34: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc14_11.3: init @G.%T.as_type.loc13_31.1 (%T.as_type) = call %bound_method.loc14_11.2(%.loc14_11.2) to %.loc13_34 +// CHECK:STDOUT: %.loc13_34: ref @G.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc14_11.3: init @G.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc14_11.2(%.loc14_11.2) to %.loc13_34 // CHECK:STDOUT: return %.loc14_11.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @H(%U.loc17_6.2: %Copy.type) { // CHECK:STDOUT: %U.loc17_6.1: %Copy.type = bind_symbolic_name U, 0 [symbolic = %U.loc17_6.1 (constants.%U.be8)] -// CHECK:STDOUT: %U.as_type.loc17_31.1: type = facet_access_type %U.loc17_6.1 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.870)] -// CHECK:STDOUT: %Class.loc17_31.1: type = class_type @Class, @Class(%U.as_type.loc17_31.1) [symbolic = %Class.loc17_31.1 (constants.%Class.a5ccb5.2)] -// CHECK:STDOUT: %pattern_type.loc17_21: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_21 (constants.%pattern_type.0a354e.2)] -// CHECK:STDOUT: %pattern_type.loc17_34: type = pattern_type %U.as_type.loc17_31.1 [symbolic = %pattern_type.loc17_34 (constants.%pattern_type.965801.3)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc17_6.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] +// CHECK:STDOUT: %Class.loc17_31.1: type = class_type @Class, @Class(%U.binding.as_type) [symbolic = %Class.loc17_31.1 (constants.%Class.09119d.2)] +// CHECK:STDOUT: %pattern_type.loc17_21: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_21 (constants.%pattern_type.4bf21b.2)] +// CHECK:STDOUT: %pattern_type.loc17_34: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc17_34 (constants.%pattern_type.17e4b7.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17_34: = require_complete_type %U.as_type.loc17_31.1 [symbolic = %require_complete.loc17_34 (constants.%require_complete.07c867.2)] -// CHECK:STDOUT: %require_complete.loc17_22: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17_22 (constants.%require_complete.92d706.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.14abad.2)] +// CHECK:STDOUT: %require_complete.loc17_34: = require_complete_type %U.binding.as_type [symbolic = %require_complete.loc17_34 (constants.%require_complete.1cd77c.2)] +// CHECK:STDOUT: %require_complete.loc17_22: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17_22 (constants.%require_complete.34f946.2)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.bb02b4.2)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc17_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.2)] // CHECK:STDOUT: %.loc18_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %U.loc17_6.1 [symbolic = %.loc18_11.4 (constants.%.427cc3.2)] // CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.4 (%.427cc3.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.168dc4.2)] // CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @Copy.Op(%U.loc17_6.1) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.a5ccb5.2)) -> %return.param: @H.%U.as_type.loc17_31.1 (%U.as_type.870) { +// CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.09119d.2)) -> %return.param: @H.%U.binding.as_type (%U.binding.as_type.2a0) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @H.%Class.loc17_31.1 (%Class.a5ccb5.2) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.14abad.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.870) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc18_11.2: @H.%U.as_type.loc17_31.1 (%U.as_type.870) = bind_value %.loc18_11.1 +// CHECK:STDOUT: %c.ref: @H.%Class.loc17_31.1 (%Class.09119d.2) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.bb02b4.2) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] +// CHECK:STDOUT: %.loc18_11.1: ref @H.%U.binding.as_type (%U.binding.as_type.2a0) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc18_11.2: @H.%U.binding.as_type (%U.binding.as_type.2a0) = bind_value %.loc18_11.1 // CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.4 (%.427cc3.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.168dc4.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.Op(constants.%U.be8) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: %bound_method.loc18_11.2: = bound_method %.loc18_11.2, %specific_impl_fn.loc18_11.1 -// CHECK:STDOUT: %.loc17_34: ref @H.%U.as_type.loc17_31.1 (%U.as_type.870) = splice_block %return {} -// CHECK:STDOUT: %.loc18_11.3: init @H.%U.as_type.loc17_31.1 (%U.as_type.870) = call %bound_method.loc18_11.2(%.loc18_11.2) to %.loc17_34 +// CHECK:STDOUT: %.loc17_34: ref @H.%U.binding.as_type (%U.binding.as_type.2a0) = splice_block %return {} +// CHECK:STDOUT: %.loc18_11.3: init @H.%U.binding.as_type (%U.binding.as_type.2a0) = call %bound_method.loc18_11.2(%.loc18_11.2) to %.loc17_34 // CHECK:STDOUT: return %.loc18_11.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -317,41 +317,41 @@ 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.as_type) { -// CHECK:STDOUT: %T.loc5_13.1 => constants.%T.as_type +// CHECK:STDOUT: specific @Class(constants.%T.binding.as_type) { +// CHECK:STDOUT: %T.loc5_13.1 => constants.%T.binding.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c867.1 -// CHECK:STDOUT: %Class => constants.%Class.a5ccb5.1 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.14abad.1 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.4196c2.1 -// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.1d8a5e.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd77c.1 +// CHECK:STDOUT: %Class => constants.%Class.09119d.1 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.bb02b4.1 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.bd04be.1 +// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.ca9a75.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T.be8) { // CHECK:STDOUT: %T.loc13_6.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc13_31.1 => constants.%T.as_type -// CHECK:STDOUT: %Class.loc13_31.1 => constants.%Class.a5ccb5.1 -// CHECK:STDOUT: %pattern_type.loc13_21 => constants.%pattern_type.0a354e.1 -// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.965801.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %Class.loc13_31.1 => constants.%Class.09119d.1 +// CHECK:STDOUT: %pattern_type.loc13_21 => constants.%pattern_type.4bf21b.1 +// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.17e4b7.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%U.as_type.870) { -// CHECK:STDOUT: %T.loc5_13.1 => constants.%U.as_type.870 +// CHECK:STDOUT: specific @Class(constants.%U.binding.as_type.2a0) { +// CHECK:STDOUT: %T.loc5_13.1 => constants.%U.binding.as_type.2a0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c867.2 -// CHECK:STDOUT: %Class => constants.%Class.a5ccb5.2 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.14abad.2 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.4196c2.2 -// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.1d8a5e.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd77c.2 +// CHECK:STDOUT: %Class => constants.%Class.09119d.2 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.bb02b4.2 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.bd04be.2 +// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.ca9a75.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%U.be8) { // CHECK:STDOUT: %U.loc17_6.1 => constants.%U.be8 -// CHECK:STDOUT: %U.as_type.loc17_31.1 => constants.%U.as_type.870 -// CHECK:STDOUT: %Class.loc17_31.1 => constants.%Class.a5ccb5.2 -// CHECK:STDOUT: %pattern_type.loc17_21 => constants.%pattern_type.0a354e.2 -// CHECK:STDOUT: %pattern_type.loc17_34 => constants.%pattern_type.965801.3 +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type.2a0 +// CHECK:STDOUT: %Class.loc17_31.1 => constants.%Class.09119d.2 +// CHECK:STDOUT: %pattern_type.loc17_21 => constants.%pattern_type.4bf21b.2 +// CHECK:STDOUT: %pattern_type.loc17_34 => constants.%pattern_type.17e4b7.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 8ed752e3c35b3..a5861f6780a87 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -483,10 +483,10 @@ class Class(U:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %CompleteClass.e9e, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c18: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.62b: %DestroyT.as_type.as.Destroy.impl.Op.type.c18 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.5f2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.1b3: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.5f2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.a97: type = ptr_type %CompleteClass.e9e [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.62b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.1b3, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %UseField.type: type = fn_type @UseField [concrete] // CHECK:STDOUT: %UseField: %UseField.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] @@ -601,11 +601,11 @@ class Class(U:! type) { // CHECK:STDOUT: %CompleteClass.F.call: init %i32 = call %CompleteClass.F.specific_fn() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%CompleteClass.e9e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_3.2: %type_where = converted constants.%CompleteClass.e9e, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.62b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.62b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b3, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.a97 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %CompleteClass.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -646,11 +646,11 @@ class Class(U:! type) { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc12_11.2(%.loc12_11.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%CompleteClass.e9e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.2: %type_where = converted constants.%CompleteClass.e9e, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.62b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.62b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc11: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b3, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc11: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.a97 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -716,10 +716,10 @@ class Class(U:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %CompleteClass.0fe, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8b2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.634: %DestroyT.as_type.as.Destroy.impl.Op.type.8b2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b6d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.da9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b6d = struct_value () [concrete] // CHECK:STDOUT: %ptr.c79: type = ptr_type %CompleteClass.0fe [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.634, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.da9, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -798,11 +798,11 @@ class Class(U:! type) { // CHECK:STDOUT: %v: ref %CompleteClass.0fe = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%CompleteClass.0fe, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%CompleteClass.0fe, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.634 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.634, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.da9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.da9, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c79 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index df95b9ba97f68..1503479e92fe3 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -57,16 +57,16 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %InitFromStructGeneric.type: type = fn_type @InitFromStructGeneric [concrete] // CHECK:STDOUT: %InitFromStructGeneric: %InitFromStructGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Class.a5c: type = class_type @Class, @Class(%T.as_type) [symbolic] -// CHECK:STDOUT: %Class.elem.14a: type = unbound_element_type %Class.a5c, %T.as_type [symbolic] -// CHECK:STDOUT: %struct_type.k.202: type = struct_type {.k: %T.as_type} [symbolic] -// CHECK:STDOUT: %require_complete.92d: = require_complete_type %Class.a5c [symbolic] -// CHECK:STDOUT: %pattern_type.0a3: type = pattern_type %Class.a5c [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Class.091: type = class_type @Class, @Class(%T.binding.as_type) [symbolic] +// CHECK:STDOUT: %Class.elem.bb0: type = unbound_element_type %Class.091, %T.binding.as_type [symbolic] +// CHECK:STDOUT: %struct_type.k.443: type = struct_type {.k: %T.binding.as_type} [symbolic] +// CHECK:STDOUT: %require_complete.34f: = require_complete_type %Class.091 [symbolic] +// CHECK:STDOUT: %pattern_type.4bf: type = pattern_type %Class.091 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] // CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] @@ -76,17 +76,17 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] -// CHECK:STDOUT: %facet_value.38a: %type_where = facet_value %Class.a5c, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.075: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.38a) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9e8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.38a) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.379: %DestroyT.as_type.as.Destroy.impl.Op.type.9e8 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.e19: type = ptr_type %Class.a5c [symbolic] -// CHECK:STDOUT: %require_complete.3cb: = require_complete_type %ptr.e19 [symbolic] -// CHECK:STDOUT: %Destroy.facet.cc3: %Destroy.type = facet_value %Class.a5c, (%Destroy.impl_witness.075) [symbolic] -// CHECK:STDOUT: %.979: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.cc3 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7e3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.379, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.38a) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] +// CHECK:STDOUT: %facet_value.313: %type_where = facet_value %Class.091, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.b22: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.313) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4cf: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.313) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.9d1: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4cf = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.aa5: type = ptr_type %Class.091 [symbolic] +// CHECK:STDOUT: %require_complete.2ed: = require_complete_type %ptr.aa5 [symbolic] +// CHECK:STDOUT: %Destroy.facet.840: %Destroy.type = facet_value %Class.091, (%Destroy.impl_witness.b22) [symbolic] +// CHECK:STDOUT: %.3f3: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.840 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.687: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.9d1, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.313) [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] @@ -108,8 +108,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %.7fa: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %facet_value.06f: %type_where = facet_value %Class.247, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.06f) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bc0: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.473: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.06f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.79b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.473 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f7c: type = ptr_type %Class.247 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -123,8 +123,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.import_ref.d0f6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.afd) = 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.6cd)] // CHECK:STDOUT: %Copy.impl_witness_table.1ed = impl_witness_table (%Core.import_ref.d0f6), @Int.as.Copy.impl [concrete] @@ -133,29 +133,29 @@ 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.322 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.965801.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.965801.1) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.17e4b7.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.17e4b7.1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_50: %Copy.type = name_ref T, %T.loc9_26.2 [symbolic = %T.loc9_26.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc9_50: type = facet_access_type %T.ref.loc9_50 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_50: type = converted %T.ref.loc9_50, %T.as_type.loc9_50 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_50: type = facet_access_type %T.ref.loc9_50 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc9_50: type = converted %T.ref.loc9_50, %T.as_type.loc9_50 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %.loc9_34: 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_26.2: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_26.1 (constants.%T.be8)] -// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_44.1: type = splice_block %.loc9_44.2 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_44.1: type = splice_block %.loc9_44.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref.loc9_44: %Copy.type = name_ref T, %T.loc9_26.2 [symbolic = %T.loc9_26.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc9_44.2: type = facet_access_type %T.ref.loc9_44 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_44.2: type = converted %T.ref.loc9_44, %T.as_type.loc9_44.2 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_44: type = facet_access_type %T.ref.loc9_44 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc9_44.2: type = converted %T.ref.loc9_44, %T.as_type.loc9_44 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = return_slot %return.param +// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [concrete = constants.%InitFromStructSpecific] { // CHECK:STDOUT: %x.patt: %pattern_type.7ce = binding_pattern x [concrete] @@ -178,75 +178,75 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @InitFromStructGeneric(%T.loc9_26.2: %Copy.type) { // CHECK:STDOUT: %T.loc9_26.1: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_26.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc9_44.1: type = facet_access_type %T.loc9_26.1 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %T.as_type.loc9_44.1 [symbolic = %pattern_type.loc9 (constants.%pattern_type.965801.1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_26.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9 (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_44.1 [symbolic = %require_complete.loc9 (constants.%require_complete.07c)] -// CHECK:STDOUT: %Class.loc10_17.2: type = class_type @Class, @Class(%T.as_type.loc9_44.1) [symbolic = %Class.loc10_17.2 (constants.%Class.a5c)] -// CHECK:STDOUT: %require_complete.loc10_17: = require_complete_type %Class.loc10_17.2 [symbolic = %require_complete.loc10_17 (constants.%require_complete.92d)] -// CHECK:STDOUT: %pattern_type.loc10: type = pattern_type %Class.loc10_17.2 [symbolic = %pattern_type.loc10 (constants.%pattern_type.0a3)] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type)} [symbolic = %struct_type.k (constants.%struct_type.k.202)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9 (constants.%require_complete.1cd)] +// CHECK:STDOUT: %Class.loc10_17.2: type = class_type @Class, @Class(%T.binding.as_type) [symbolic = %Class.loc10_17.2 (constants.%Class.091)] +// CHECK:STDOUT: %require_complete.loc10_17: = require_complete_type %Class.loc10_17.2 [symbolic = %require_complete.loc10_17 (constants.%require_complete.34f)] +// CHECK:STDOUT: %pattern_type.loc10: type = pattern_type %Class.loc10_17.2 [symbolic = %pattern_type.loc10 (constants.%pattern_type.4bf)] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.k (constants.%struct_type.k.443)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_26.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc10_27.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc9_26.1 [symbolic = %.loc10_27.2 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc10_27.2: @InitFromStructGeneric.%.loc10_27.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.Op(%T.loc9_26.1) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.2ce)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.as_type.loc9_44.1 [symbolic = %Class.elem (constants.%Class.elem.14a)] -// CHECK:STDOUT: %facet_value.loc10_3.2: %type_where = facet_value %Class.loc10_17.2, () [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.38a)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc10_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.075)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.cc3)] -// CHECK:STDOUT: %.loc10_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc10_3.3 (constants.%.979)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc10_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.9e8)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @InitFromStructGeneric.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.9e8) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.379)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc10_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7e3)] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.loc10_17.2 [symbolic = %ptr (constants.%ptr.e19)] -// CHECK:STDOUT: %require_complete.loc10_3: = require_complete_type %ptr [symbolic = %require_complete.loc10_3 (constants.%require_complete.3cb)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.bb0)] +// CHECK:STDOUT: %facet_value.loc10_3.2: %type_where = facet_value %Class.loc10_17.2, () [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.313)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc10_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.b22)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.840)] +// CHECK:STDOUT: %.loc10_3.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc10_3.3 (constants.%.3f3)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc10_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.4cf)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @InitFromStructGeneric.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.4cf) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9d1)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc10_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.687)] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.loc10_17.2 [symbolic = %ptr (constants.%ptr.aa5)] +// CHECK:STDOUT: %require_complete.loc10_3: = require_complete_type %ptr [symbolic = %require_complete.loc10_3 (constants.%require_complete.2ed)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type)) -> %return.param: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0a3) = binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.0a3) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.4bf) = binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.4bf) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.a5c) = var %v.var_patt -// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.202) = struct_literal (%x.ref) +// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.091) = var %v.var_patt +// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.443) = struct_literal (%x.ref) // CHECK:STDOUT: %impl.elem0.loc10_27.1: @InitFromStructGeneric.%.loc10_27.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.2ce)] // 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.as_type.loc9_44.1 (%T.as_type) = class_element_access %v.var, element0 -// CHECK:STDOUT: %.loc10_27.1: init @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = call %bound_method.loc10_27.2(%x.ref) to %.loc10_28.2 -// CHECK:STDOUT: %.loc10_28.3: init @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = initialize_from %.loc10_27.1 to %.loc10_28.2 -// CHECK:STDOUT: %.loc10_28.4: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.a5c) = class_init (%.loc10_28.3), %v.var -// CHECK:STDOUT: %.loc10_3.1: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.a5c) = converted %.loc10_28.1, %.loc10_28.4 +// CHECK:STDOUT: %.loc10_28.2: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = class_element_access %v.var, element0 +// CHECK:STDOUT: %.loc10_27.1: init @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc10_27.2(%x.ref) to %.loc10_28.2 +// CHECK:STDOUT: %.loc10_28.3: init @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = initialize_from %.loc10_27.1 to %.loc10_28.2 +// CHECK:STDOUT: %.loc10_28.4: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.091) = class_init (%.loc10_28.3), %v.var +// CHECK:STDOUT: %.loc10_3.1: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.091) = 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.a5c)] { +// CHECK:STDOUT: %.loc10_17.1: type = splice_block %Class.loc10_17.1 [symbolic = %Class.loc10_17.2 (constants.%Class.091)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %T.ref.loc10: %Copy.type = name_ref T, %T.loc9_26.2 [symbolic = %T.loc9_26.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc10_17.2: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc9_44.1 (constants.%T.as_type)] -// CHECK:STDOUT: %Class.loc10_17.1: type = class_type @Class, @Class(constants.%T.as_type) [symbolic = %Class.loc10_17.2 (constants.%Class.a5c)] +// 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_17.2: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %Class.loc10_17.1: type = class_type @Class, @Class(constants.%T.binding.as_type) [symbolic = %Class.loc10_17.2 (constants.%Class.091)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.a5c) = bind_name v, %v.var -// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.a5c) = name_ref v, %v -// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.14a) = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] -// CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = class_element_access %v.ref, element0 -// CHECK:STDOUT: %.loc11_11.2: @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = bind_value %.loc11_11.1 +// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.091) = bind_name v, %v.var +// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.091) = name_ref v, %v +// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.bb0) = name_ref k, @Class.%.loc5 [concrete = @Class.%.loc5] +// CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = class_element_access %v.ref, element0 +// CHECK:STDOUT: %.loc11_11.2: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = bind_value %.loc11_11.1 // CHECK:STDOUT: %impl.elem0.loc11: @InitFromStructGeneric.%.loc10_27.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %.loc11_11.2, %specific_impl_fn.loc11 -// CHECK:STDOUT: %.loc9_47: ref @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc11_11.3: init @InitFromStructGeneric.%T.as_type.loc9_44.1 (%T.as_type) = call %bound_method.loc11_11.2(%.loc11_11.2) to %.loc9_47 -// CHECK:STDOUT: %facet_value.loc10_3.1: %type_where = facet_value constants.%Class.a5c, () [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.38a)] -// CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%Class.a5c, %facet_value.loc10_3.1 [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.38a)] -// CHECK:STDOUT: %impl.elem0.loc10_3: @InitFromStructGeneric.%.loc10_3.3 (%.979) = impl_witness_access constants.%Destroy.impl_witness.075, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.379)] +// CHECK:STDOUT: %.loc9_47: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc11_11.3: init @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc11_11.2(%.loc11_11.2) to %.loc9_47 +// CHECK:STDOUT: %facet_value.loc10_3.1: %type_where = facet_value constants.%Class.091, () [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.313)] +// CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%Class.091, %facet_value.loc10_3.1 [symbolic = %facet_value.loc10_3.2 (constants.%facet_value.313)] +// CHECK:STDOUT: %impl.elem0.loc10_3: @InitFromStructGeneric.%.loc10_3.3 (%.3f3) = impl_witness_access constants.%Destroy.impl_witness.b22, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9d1)] // CHECK:STDOUT: %bound_method.loc10_3.1: = bound_method %v.var, %impl.elem0.loc10_3 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc10_3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.38a) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7e3)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc10_3, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.313) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.687)] // CHECK:STDOUT: %bound_method.loc10_3.2: = bound_method %v.var, %specific_fn -// CHECK:STDOUT: %addr: @InitFromStructGeneric.%ptr (%ptr.e19) = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_3.2(%addr) +// CHECK:STDOUT: %addr: @InitFromStructGeneric.%ptr (%ptr.aa5) = addr_of %v.var +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_3.2(%addr) // CHECK:STDOUT: return %.loc11_11.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -288,18 +288,18 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call.loc16: init %i32 = call %bound_method.loc16_11.2(%.loc16_11.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class.247, () [concrete = constants.%facet_value.06f] // CHECK:STDOUT: %.loc15_3.2: %type_where = converted constants.%Class.247, %facet_value [concrete = constants.%facet_value.06f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bc0 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.79b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15_3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc15_3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f7c = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_3(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call.loc16 to %return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromStructGeneric(constants.%T.be8) { // CHECK:STDOUT: %T.loc9_26.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc9_44.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc9 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc9 => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adapt.carbon @@ -310,13 +310,13 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %InitFromAdaptedGeneric.type: type = fn_type @InitFromAdaptedGeneric [concrete] // CHECK:STDOUT: %InitFromAdaptedGeneric: %InitFromAdaptedGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Adapt.c71: type = class_type @Adapt, @Adapt(%T.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.d89: = require_complete_type %Adapt.c71 [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Adapt.c67: type = class_type @Adapt, @Adapt(%T.binding.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.438: = require_complete_type %Adapt.c67 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] // CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] @@ -357,29 +357,29 @@ 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.322 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.965801.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.965801.1) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_51: %Copy.type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.be8)] -// 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: type = converted %T.ref.loc9_51, %T.as_type.loc9_51 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc9_51, %T.as_type.loc9_51 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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_27.2: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_27.1 (constants.%T.be8)] -// 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: %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: %T.ref.loc9_45: %Copy.type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.be8)] -// 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: %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: } -// CHECK:STDOUT: %x: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = bind_name 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: %x: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = bind_name 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: } // CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [concrete = constants.%InitFromAdaptedSpecific] { // CHECK:STDOUT: %x.patt: %pattern_type.7ce = binding_pattern x [concrete] @@ -402,39 +402,39 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @InitFromAdaptedGeneric(%T.loc9_27.2: %Copy.type) { // CHECK:STDOUT: %T.loc9_27.1: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_27.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc9_45.1: type = facet_access_type %T.loc9_27.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.965801.1)] +// 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)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_45.1 [symbolic = %require_complete.loc9 (constants.%require_complete.07c)] -// CHECK:STDOUT: %Adapt.loc10_23.2: type = class_type @Adapt, @Adapt(%T.as_type.loc9_45.1) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.c71)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Adapt.loc10_23.2 [symbolic = %require_complete.loc10 (constants.%require_complete.d89)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9 (constants.%require_complete.1cd)] +// CHECK:STDOUT: %Adapt.loc10_23.2: type = class_type @Adapt, @Adapt(%T.binding.as_type) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.c67)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Adapt.loc10_23.2 [symbolic = %require_complete.loc10 (constants.%require_complete.438)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_27.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc10_26.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc9_27.1 [symbolic = %.loc10_26.4 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc10_26.2: @InitFromAdaptedGeneric.%.loc10_26.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc10_26.2: = specific_impl_function %impl.elem0.loc10_26.2, @Copy.Op(%T.loc9_27.1) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type)) -> %return.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.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_27.2 [symbolic = %T.loc9_27.1 (constants.%T.be8)] -// 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.c71)] -// CHECK:STDOUT: %.loc10_13.1: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.c71) = as_compatible %x.ref -// CHECK:STDOUT: %.loc10_13.2: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.c71) = converted %x.ref, %.loc10_13.1 +// 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.c67)] +// CHECK:STDOUT: %.loc10_13.1: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.c67) = as_compatible %x.ref +// CHECK:STDOUT: %.loc10_13.2: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.c67) = converted %x.ref, %.loc10_13.1 // CHECK:STDOUT: %T.ref.loc10_29: %Copy.type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.be8)] -// 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: %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: %impl.elem0.loc10_26.1: @InitFromAdaptedGeneric.%.loc10_26.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc10_26.2: = bound_method %.loc10_26.2, %specific_impl_fn.loc10_26.1 -// CHECK:STDOUT: %.loc9_48: ref @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc10_26.3: init @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = call %bound_method.loc10_26.2(%.loc10_26.2) to %.loc9_48 +// CHECK:STDOUT: %.loc9_48: ref @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc10_26.3: init @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc10_26.2(%.loc10_26.2) to %.loc9_48 // CHECK:STDOUT: return %.loc10_26.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -462,7 +462,7 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromAdaptedGeneric(constants.%T.be8) { // CHECK:STDOUT: %T.loc9_27.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc9_45.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // 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 c4c6be399c867..ed24ad429dab5 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.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %Class.2c5: type = class_type @Class, @Class(%T.be8) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Class.elem.3a8: type = unbound_element_type %Class.2c5, %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Class.elem.73e: type = unbound_element_type %Class.2c5, %T.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.38d: type = pattern_type %Class.2c5 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Class.Get.type.69d: type = fn_type @Class.Get, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.Get.fe0: %Class.Get.type.69d = struct_value () [symbolic] // CHECK:STDOUT: %ptr.818: type = ptr_type %Class.2c5 [symbolic] // CHECK:STDOUT: %pattern_type.e8f: type = pattern_type %ptr.818 [symbolic] -// CHECK:STDOUT: %ptr.f3f: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.f74: type = pattern_type %ptr.f3f [symbolic] +// CHECK:STDOUT: %ptr.b04: type = ptr_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.fef: type = pattern_type %ptr.b04 [symbolic] // CHECK:STDOUT: %Class.GetAddr.type.2b0: type = fn_type @Class.GetAddr, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.GetAddr.913: %Class.GetAddr.type.2b0 = struct_value () [symbolic] -// CHECK:STDOUT: %struct_type.x.419: type = struct_type {.x: %T.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.1d8: = complete_type_witness %struct_type.x.419 [symbolic] +// CHECK:STDOUT: %struct_type.x.bd0: type = struct_type {.x: %T.binding.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.ca9: = complete_type_witness %struct_type.x.bd0 [symbolic] // CHECK:STDOUT: %require_complete.3e3: = require_complete_type %Class.2c5 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] @@ -92,11 +92,11 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.31f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.8b3) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.8a8: %ptr.as.Copy.impl.Op.type.31f = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.046: = lookup_impl_witness %ptr.f3f, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.c30: %Copy.type = facet_value %ptr.f3f, (%Copy.lookup_impl_witness.046) [symbolic] -// CHECK:STDOUT: %.10a: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c30 [symbolic] -// CHECK:STDOUT: %impl.elem0.823: %.10a = impl_witness_access %Copy.lookup_impl_witness.046, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.831: = specific_impl_function %impl.elem0.823, @Copy.Op(%Copy.facet.c30) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.d9e: = lookup_impl_witness %ptr.b04, @Copy [symbolic] +// CHECK:STDOUT: %Copy.facet.83e: %Copy.type = facet_value %ptr.b04, (%Copy.lookup_impl_witness.d9e) [symbolic] +// CHECK:STDOUT: %.199: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.83e [symbolic] +// CHECK:STDOUT: %impl.elem0.57c: %.199 = impl_witness_access %Copy.lookup_impl_witness.d9e, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.624: = specific_impl_function %impl.elem0.57c, @Copy.Op(%Copy.facet.83e) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -167,25 +167,25 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_27.1 [symbolic = %Class.elem (constants.%Class.elem.3a8)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc7_27.1 [symbolic = %require_complete.loc9 (constants.%require_complete.07c)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.73e)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9 (constants.%require_complete.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc9_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc9_16.4 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc9_16.2: @Class.Get.%.loc9_16.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc9_16.2: = specific_impl_function %impl.elem0.loc9_16.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.Get.%Class (%Class.2c5)) -> %return.param: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) { +// CHECK:STDOUT: fn(%self.param: @Class.Get.%Class (%Class.2c5)) -> %return.param: @Class.Get.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Class.Get.%Class (%Class.2c5) = name_ref self, %self -// CHECK:STDOUT: %x.ref: @Class.Get.%Class.elem (%Class.elem.3a8) = 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) = bind_value %.loc9_16.1 +// CHECK:STDOUT: %x.ref: @Class.Get.%Class.elem (%Class.elem.73e) = 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) = bind_value %.loc9_16.1 // CHECK:STDOUT: %impl.elem0.loc9_16.1: @Class.Get.%.loc9_16.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc9_16.2: = bound_method %.loc9_16.2, %specific_impl_fn.loc9_16.1 // CHECK:STDOUT: -// CHECK:STDOUT: %.loc9_16.3: init @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = call %bound_method.loc9_16.2(%.loc9_16.2) to %.loc7_24 +// CHECK:STDOUT: %.loc9_16.3: init @Class.Get.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc9_16.2(%.loc9_16.2) to %.loc7_24 // CHECK:STDOUT: return %.loc9_16.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -196,25 +196,25 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Class [symbolic = %require_complete.loc15 (constants.%require_complete.3e3)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc13_38.1 [symbolic = %Class.elem (constants.%Class.elem.3a8)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_38.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.046)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_38.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.c30)] -// CHECK:STDOUT: %.loc15_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc15_12.2 (constants.%.10a)] -// CHECK:STDOUT: %impl.elem0.loc15_12.2: @Class.GetAddr.%.loc15_12.2 (%.10a) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.823)] -// CHECK:STDOUT: %specific_impl_fn.loc15_12.2: = specific_impl_function %impl.elem0.loc15_12.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.831)] -// CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.GetAddr.%ptr.loc13_29.1 (%ptr.818)) -> @Class.GetAddr.%ptr.loc13_38.1 (%ptr.f3f) { +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.73e)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_38.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.d9e)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_38.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.83e)] +// CHECK:STDOUT: %.loc15_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc15_12.2 (constants.%.199)] +// CHECK:STDOUT: %impl.elem0.loc15_12.2: @Class.GetAddr.%.loc15_12.2 (%.199) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.57c)] +// CHECK:STDOUT: %specific_impl_fn.loc15_12.2: = specific_impl_function %impl.elem0.loc15_12.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.624)] +// CHECK:STDOUT: +// CHECK:STDOUT: fn(%self.param: @Class.GetAddr.%ptr.loc13_29.1 (%ptr.818)) -> @Class.GetAddr.%ptr.loc13_38.1 (%ptr.b04) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Class.GetAddr.%ptr.loc13_29.1 (%ptr.818) = name_ref self, %self // CHECK:STDOUT: %.loc15_17.1: ref @Class.GetAddr.%Class (%Class.2c5) = deref %self.ref -// CHECK:STDOUT: %x.ref: @Class.GetAddr.%Class.elem (%Class.elem.3a8) = name_ref x, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] -// CHECK:STDOUT: %.loc15_17.2: ref @Class.GetAddr.%T.as_type.loc13_38.1 (%T.as_type) = class_element_access %.loc15_17.1, element0 -// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc13_38.1 (%ptr.f3f) = addr_of %.loc15_17.2 -// CHECK:STDOUT: %impl.elem0.loc15_12.1: @Class.GetAddr.%.loc15_12.2 (%.10a) = impl_witness_access constants.%Copy.lookup_impl_witness.046, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.823)] +// CHECK:STDOUT: %x.ref: @Class.GetAddr.%Class.elem (%Class.elem.73e) = name_ref x, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] +// CHECK:STDOUT: %.loc15_17.2: ref @Class.GetAddr.%T.binding.as_type (%T.binding.as_type) = class_element_access %.loc15_17.1, element0 +// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc13_38.1 (%ptr.b04) = addr_of %.loc15_17.2 +// CHECK:STDOUT: %impl.elem0.loc15_12.1: @Class.GetAddr.%.loc15_12.2 (%.199) = impl_witness_access constants.%Copy.lookup_impl_witness.d9e, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.57c)] // 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.Op(constants.%Copy.facet.c30) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.831)] +// CHECK:STDOUT: %specific_impl_fn.loc15_12.1: = specific_impl_function %impl.elem0.loc15_12.1, @Copy.Op(constants.%Copy.facet.83e) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.624)] // CHECK:STDOUT: %bound_method.loc15_12.2: = bound_method %addr, %specific_impl_fn.loc15_12.1 -// CHECK:STDOUT: %.loc15_12.1: init @Class.GetAddr.%ptr.loc13_38.1 (%ptr.f3f) = call %bound_method.loc15_12.2(%addr) +// CHECK:STDOUT: %.loc15_12.1: init @Class.GetAddr.%ptr.loc13_38.1 (%ptr.b04) = call %bound_method.loc15_12.2(%addr) // CHECK:STDOUT: return %.loc15_12.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -272,24 +272,24 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.loc4_13.1 => constants.%T.be8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc5_10.2 => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd // CHECK:STDOUT: %Class => constants.%Class.2c5 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.3a8 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.73e // CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.69d // CHECK:STDOUT: %Class.Get => constants.%Class.Get.fe0 // CHECK:STDOUT: %Class.GetAddr.type => constants.%Class.GetAddr.type.2b0 // CHECK:STDOUT: %Class.GetAddr => constants.%Class.GetAddr.913 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.419 -// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.1d8 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.bd0 +// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.ca9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.Get(constants.%T.be8) { // CHECK:STDOUT: %T => constants.%T.be8 // CHECK:STDOUT: %Class => constants.%Class.2c5 // CHECK:STDOUT: %pattern_type.loc7_10 => constants.%pattern_type.38d -// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc7_24 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc7_24 => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetAddr(constants.%T.be8) { @@ -297,16 +297,16 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class => constants.%Class.2c5 // CHECK:STDOUT: %ptr.loc13_29.1 => constants.%ptr.818 // CHECK:STDOUT: %pattern_type.loc13_19 => constants.%pattern_type.e8f -// CHECK:STDOUT: %T.as_type.loc13_38.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc13_38.1 => constants.%ptr.f3f -// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.f74 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %ptr.loc13_38.1 => constants.%ptr.b04 +// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.fef // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%Copy.facet.c49) { // CHECK:STDOUT: %T.loc4_13.1 => constants.%Copy.facet.c49 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc5_10.2 => constants.%i32 +// CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: %Class => constants.%Class.062 // CHECK:STDOUT: %Class.elem => constants.%Class.elem.6e5 @@ -322,7 +322,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T => constants.%Copy.facet.c49 // CHECK:STDOUT: %Class => constants.%Class.062 // CHECK:STDOUT: %pattern_type.loc7_10 => constants.%pattern_type.4e5 -// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%i32 +// CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %pattern_type.loc7_24 => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -340,7 +340,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Class => constants.%Class.062 // CHECK:STDOUT: %ptr.loc13_29.1 => constants.%ptr.cd0 // CHECK:STDOUT: %pattern_type.loc13_19 => constants.%pattern_type.364 -// CHECK:STDOUT: %T.as_type.loc13_38.1 => constants.%i32 +// CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %ptr.loc13_38.1 => constants.%ptr.235 // CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.fe8 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_inline.carbon b/toolchain/check/testdata/class/generic/member_inline.carbon index b17c4ca6838ca..679116693c677 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -54,16 +54,16 @@ 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.be8) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.38d: type = pattern_type %Class [symbolic] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.07c: = 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: %require_complete.1cd: = 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: %complete_type: = complete_type_witness %struct_type.n [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] @@ -103,54 +103,54 @@ 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_13.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.as_type.loc14_10.2: type = facet_access_type %T.loc5_13.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.07c)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_13.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.1cd)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_13.1) [symbolic = %Class (constants.%Class)] -// 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: %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: %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.patt: @Class.F.%pattern_type (%pattern_type.965801.1) = binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.965801.1) = value_param_pattern %n.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern n [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %n.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.be8)] -// 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: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// 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.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: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// 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.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.be8)] -// 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: %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: } -// CHECK:STDOUT: %n: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = bind_name 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: %n: @Class.F.%T.binding.as_type (%T.binding.as_type) = bind_name 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: } // 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.patt: @Class.G.%pattern_type.loc10_8 (%pattern_type.38d) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_8 (%pattern_type.38d) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_22 (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T (constants.%T.be8)] -// 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: type = converted %T.ref, %T.as_type.loc10_25.2 [symbolic = %T.as_type.loc10_25.1 (constants.%T.as_type)] +// 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: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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.be8) [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) = bind_name self, %self.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: %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: } // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: %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: %.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 @@ -166,25 +166,25 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.be8)] -// 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.965801.1)] +// 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.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.07c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc7_12.2 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.F.%.loc7_12.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> %return.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { +// CHECK:STDOUT: fn(%n.param: @Class.F.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @Class.F.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n +// CHECK:STDOUT: %n.ref: @Class.F.%T.binding.as_type (%T.binding.as_type) = name_ref n, %n // CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.F.%.loc7_12.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %n.ref, %specific_impl_fn.loc7_12.1 -// CHECK:STDOUT: %.loc6_14: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc7_12.1: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = call %bound_method.loc7_12.2(%n.ref) to %.loc6_14 +// CHECK:STDOUT: %.loc6_14: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc7_12.1: init @Class.F.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc7_12.2(%n.ref) to %.loc6_14 // CHECK:STDOUT: return %.loc7_12.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -193,30 +193,30 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %T: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.be8)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc10_8: type = pattern_type %Class [symbolic = %pattern_type.loc10_8 (constants.%pattern_type.38d)] -// 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: %pattern_type.loc10_22: type = pattern_type %T.as_type.loc10_25.1 [symbolic = %pattern_type.loc10_22 (constants.%pattern_type.965801.1)] +// 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.loc10_22: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_22 (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.3e3)] -// 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.07c)] +// 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.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc11_16.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc11_16.4 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.G.%.loc11_16.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.G.%Class (%Class)) -> %return.param: @Class.G.%T.as_type.loc10_25.1 (%T.as_type) { +// CHECK:STDOUT: fn(%self.param: @Class.G.%Class (%Class)) -> %return.param: @Class.G.%T.binding.as_type (%T.binding.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.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) = bind_value %.loc11_16.1 +// 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) = bind_value %.loc11_16.1 // CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.G.%.loc11_16.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 -// CHECK:STDOUT: %.loc10_22: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc11_16.3: init @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = call %bound_method.loc11_16.2(%.loc11_16.2) to %.loc10_22 +// CHECK:STDOUT: %.loc10_22: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc11_16.3: init @Class.G.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc11_16.2(%.loc11_16.2) to %.loc10_22 // CHECK:STDOUT: return %.loc11_16.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -229,8 +229,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.as_type.loc14_10.2 => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n @@ -239,16 +239,16 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.F(constants.%T.be8) { // CHECK:STDOUT: %T => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.G(constants.%T.be8) { // CHECK:STDOUT: %T => constants.%T.be8 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %pattern_type.loc10_8 => constants.%pattern_type.38d -// CHECK:STDOUT: %T.as_type.loc10_25.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc10_22 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc10_22 => constants.%pattern_type.17e4b7.1 // 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 094d1742ef654..9601c1e81eef4 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -81,15 +81,15 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %Derived.3ba: type = class_type @Derived, @Derived(%T.as_type) [symbolic] -// CHECK:STDOUT: %pattern_type.3fc: type = pattern_type %Derived.3ba [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Base.e03: type = class_type @Base, @Base(%T.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.f0e: = require_complete_type %Base.e03 [symbolic] -// CHECK:STDOUT: %Derived.elem.1c7: type = unbound_element_type %Derived.3ba, %T.as_type [symbolic] -// CHECK:STDOUT: %Base.elem.58f: type = unbound_element_type %Base.e03, %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %Derived.b36: type = class_type @Derived, @Derived(%T.binding.as_type) [symbolic] +// CHECK:STDOUT: %pattern_type.50f: type = pattern_type %Derived.b36 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Base.342: type = class_type @Base, @Base(%T.binding.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.254: = require_complete_type %Base.342 [symbolic] +// CHECK:STDOUT: %Derived.elem.0da: type = unbound_element_type %Derived.b36, %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Base.elem.b9e: type = unbound_element_type %Base.342, %T.binding.as_type [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] // CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] @@ -105,24 +105,24 @@ 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.as_type.loc13_45.1 [symbolic = %Derived.elem (constants.%Derived.elem.1c7)] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_45.1, %T.binding.as_type [symbolic = %Derived.elem (constants.%Derived.elem.0da)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_18.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc15_11.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc13_18.1 [symbolic = %.loc15_11.4 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc15_11.2: @AccessDerived.%.loc15_11.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc15_11.2: = specific_impl_function %impl.elem0.loc15_11.2, @Copy.Op(%T.loc13_18.1) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_45.1 (%Derived.3ba)) -> %return.param: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_45.1 (%Derived.b36)) -> %return.param: @AccessDerived.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_45.1 (%Derived.3ba) = name_ref x, %x -// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.1c7) = 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) = bind_value %.loc15_11.1 +// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_45.1 (%Derived.b36) = name_ref x, %x +// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.0da) = 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) = bind_value %.loc15_11.1 // CHECK:STDOUT: %impl.elem0.loc15_11.1: @AccessDerived.%.loc15_11.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc15_11.2: = bound_method %.loc15_11.2, %specific_impl_fn.loc15_11.1 // CHECK:STDOUT: -// CHECK:STDOUT: %.loc15_11.3: init @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = call %bound_method.loc15_11.2(%.loc15_11.2) to %.loc13_48 +// CHECK:STDOUT: %.loc15_11.3: init @AccessDerived.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc15_11.2(%.loc15_11.2) to %.loc13_48 // CHECK:STDOUT: return %.loc15_11.3 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -132,46 +132,46 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.as_type.loc19_42.1) [symbolic = %Base (constants.%Base.e03)] -// CHECK:STDOUT: %require_complete.loc21_11: = require_complete_type %Base [symbolic = %require_complete.loc21_11 (constants.%require_complete.f0e)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.as_type.loc19_42.1 [symbolic = %Base.elem (constants.%Base.elem.58f)] -// CHECK:STDOUT: %require_complete.loc21_13: = require_complete_type %T.as_type.loc19_42.1 [symbolic = %require_complete.loc21_13 (constants.%require_complete.07c)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.binding.as_type) [symbolic = %Base (constants.%Base.342)] +// CHECK:STDOUT: %require_complete.loc21_11: = require_complete_type %Base [symbolic = %require_complete.loc21_11 (constants.%require_complete.254)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.binding.as_type [symbolic = %Base.elem (constants.%Base.elem.b9e)] +// CHECK:STDOUT: %require_complete.loc21_13: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc21_13 (constants.%require_complete.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc19_15.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc21_11.6: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc19_15.1 [symbolic = %.loc21_11.6 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc21_11.2: @AccessBase.%.loc21_11.6 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @Copy.Op(%T.loc19_15.1) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc19_42.1 (%Derived.3ba)) -> %return.param: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc19_42.1 (%Derived.b36)) -> %return.param: @AccessBase.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc19_42.1 (%Derived.3ba) = name_ref x, %x -// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.58f) = name_ref b, @Base.%.loc5 [concrete = @Base.%.loc5] -// CHECK:STDOUT: %.loc21_11.1: ref @AccessBase.%Base (%Base.e03) = class_element_access %x.ref, element0 -// CHECK:STDOUT: %.loc21_11.2: ref @AccessBase.%Base (%Base.e03) = 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) = bind_value %.loc21_11.3 +// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc19_42.1 (%Derived.b36) = name_ref x, %x +// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.b9e) = name_ref b, @Base.%.loc5 [concrete = @Base.%.loc5] +// CHECK:STDOUT: %.loc21_11.1: ref @AccessBase.%Base (%Base.342) = class_element_access %x.ref, element0 +// CHECK:STDOUT: %.loc21_11.2: ref @AccessBase.%Base (%Base.342) = 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) = bind_value %.loc21_11.3 // CHECK:STDOUT: %impl.elem0.loc21_11.1: @AccessBase.%.loc21_11.6 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc21_11.2: = bound_method %.loc21_11.4, %specific_impl_fn.loc21_11.1 // CHECK:STDOUT: -// CHECK:STDOUT: %.loc21_11.5: init @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = call %bound_method.loc21_11.2(%.loc21_11.4) to %.loc19_45 +// CHECK:STDOUT: %.loc21_11.5: init @AccessBase.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc21_11.2(%.loc21_11.4) to %.loc19_45 // CHECK:STDOUT: return %.loc21_11.5 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessDerived(constants.%T.be8) { // CHECK:STDOUT: %T.loc13_18.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc13_45.1 => constants.%T.as_type -// CHECK:STDOUT: %Derived.loc13_45.1 => constants.%Derived.3ba -// CHECK:STDOUT: %pattern_type.loc13_33 => constants.%pattern_type.3fc -// CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %Derived.loc13_45.1 => constants.%Derived.b36 +// CHECK:STDOUT: %pattern_type.loc13_33 => constants.%pattern_type.50f +// CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessBase(constants.%T.be8) { // CHECK:STDOUT: %T.loc19_15.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc19_42.1 => constants.%T.as_type -// CHECK:STDOUT: %Derived.loc19_42.1 => constants.%Derived.3ba -// CHECK:STDOUT: %pattern_type.loc19_30 => constants.%pattern_type.3fc -// CHECK:STDOUT: %pattern_type.loc19_45 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %Derived.loc19_42.1 => constants.%Derived.b36 +// CHECK:STDOUT: %pattern_type.loc19_30 => constants.%pattern_type.50f +// CHECK:STDOUT: %pattern_type.loc19_45 => constants.%pattern_type.17e4b7.1 // 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 25cda05d440e3..cd33e52f53206 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -121,16 +121,16 @@ fn Generic(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.be8) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.38d: type = pattern_type %Class [symbolic] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.be8) [symbolic] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.07c: = 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: %require_complete.1cd: = 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: %complete_type: = complete_type_witness %struct_type.n [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] @@ -161,10 +161,10 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc5_13.2: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.be8)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] { -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.965801.1) = binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.965801.1) = value_param_pattern %n.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern n [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %n.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: @@ -173,23 +173,23 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc11: %Copy.type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc5_13.1 (constants.%T.be8)] // CHECK:STDOUT: %T.ref.loc11_36: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.be8)] -// 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: type = converted %T.ref.loc11_36, %T.as_type.loc11_36 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// 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.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: type = converted %T.ref.loc11_36, %T.as_type.loc11_36 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// 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.ref.loc11_30: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.be8)] -// 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: %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: } -// CHECK:STDOUT: %n.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = bind_name 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: %n.loc11: @Class.F.%T.binding.as_type (%T.binding.as_type) = bind_name 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: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [symbolic = constants.%Class.G] { // CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.38d) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.38d) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: @@ -198,16 +198,16 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15: %Copy.type = bind_symbolic_name T, 0 [symbolic = @Class.%T.loc5_13.1 (constants.%T.be8)] // CHECK:STDOUT: %T.ref.loc15: %Copy.type = name_ref T, %T.loc15 [symbolic = %T.loc7 (constants.%T.be8)] -// 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: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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.be8) [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) = bind_name self, %self.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: %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: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -219,54 +219,54 @@ fn Generic(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_13.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.as_type.loc8_10.2: type = facet_access_type %T.loc5_13.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.07c)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_13.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.1cd)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_13.1) [symbolic = %Class (constants.%Class)] -// 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: %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: %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.patt: @Class.F.%pattern_type (%pattern_type.965801.1) = binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.965801.1) = value_param_pattern %n.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern n [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %n.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T.loc6 (constants.%T.be8)] -// 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: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] -// 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.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: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// 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.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T.loc6 (constants.%T.be8)] -// 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: %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: } -// CHECK:STDOUT: %n.loc6: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = bind_name 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: %n.loc6: @Class.F.%T.binding.as_type (%T.binding.as_type) = bind_name 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: } // 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.patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.38d) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_8 (%pattern_type.38d) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_22 (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc7: %Copy.type = name_ref T, @Class.%T.loc5_13.2 [symbolic = %T.loc7 (constants.%T.be8)] -// 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: type = converted %T.ref.loc7, %T.as_type.loc7_25.2 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc7, %T.as_type.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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.be8) [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) = bind_name self, %self.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: %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: } // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: %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: %.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 @@ -282,25 +282,25 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T.loc6: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc6 (constants.%T.be8)] -// 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.965801.1)] +// 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.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.07c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc6, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc12_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc6 [symbolic = %.loc12_10.2 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc12_10.2: @Class.F.%.loc12_10.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc12_10.2: = specific_impl_function %impl.elem0.loc12_10.2, @Copy.Op(%T.loc6) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> %return.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { +// CHECK:STDOUT: fn(%n.param.loc11: @Class.F.%T.binding.as_type (%T.binding.as_type)) -> %return.param.loc11: @Class.F.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n.loc11 +// CHECK:STDOUT: %n.ref: @Class.F.%T.binding.as_type (%T.binding.as_type) = name_ref n, %n.loc11 // CHECK:STDOUT: %impl.elem0.loc12_10.1: @Class.F.%.loc12_10.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc12_10.2: = bound_method %n.ref, %specific_impl_fn.loc12_10.1 -// CHECK:STDOUT: %.loc11_33: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return.loc11 {} -// CHECK:STDOUT: %.loc12_10.1: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = call %bound_method.loc12_10.2(%n.ref) to %.loc11_33 +// CHECK:STDOUT: %.loc11_33: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = splice_block %return.loc11 {} +// CHECK:STDOUT: %.loc12_10.1: init @Class.F.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc12_10.2(%n.ref) to %.loc11_33 // CHECK:STDOUT: return %.loc12_10.1 to %return.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -309,30 +309,30 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc7: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc7 (constants.%T.be8)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc7) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc7_8: type = pattern_type %Class [symbolic = %pattern_type.loc7_8 (constants.%pattern_type.38d)] -// 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: %pattern_type.loc7_22: type = pattern_type %T.as_type.loc7_25.1 [symbolic = %pattern_type.loc7_22 (constants.%pattern_type.965801.1)] +// 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: %pattern_type.loc7_22: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc7_22 (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Class [symbolic = %require_complete.loc15 (constants.%require_complete.3e3)] -// 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.07c)] +// 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.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc7, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc16_14.4: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc7 [symbolic = %.loc16_14.4 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc16_14.2: @Class.G.%.loc16_14.4 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc16_14.2: = specific_impl_function %impl.elem0.loc16_14.2, @Copy.Op(%T.loc7) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param.loc15: @Class.G.%Class (%Class)) -> %return.param.loc15: @Class.G.%T.as_type.loc7_25.1 (%T.as_type) { +// CHECK:STDOUT: fn(%self.param.loc15: @Class.G.%Class (%Class)) -> %return.param.loc15: @Class.G.%T.binding.as_type (%T.binding.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.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) = bind_value %.loc16_14.1 +// 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) = bind_value %.loc16_14.1 // CHECK:STDOUT: %impl.elem0.loc16_14.1: @Class.G.%.loc16_14.4 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc16_14.2: = bound_method %.loc16_14.2, %specific_impl_fn.loc16_14.1 -// CHECK:STDOUT: %.loc15_41: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = splice_block %return.loc15 {} -// CHECK:STDOUT: %.loc16_14.3: init @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = call %bound_method.loc16_14.2(%.loc16_14.2) to %.loc15_41 +// CHECK:STDOUT: %.loc15_41: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = splice_block %return.loc15 {} +// CHECK:STDOUT: %.loc16_14.3: init @Class.G.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc16_14.2(%.loc16_14.2) to %.loc15_41 // CHECK:STDOUT: return %.loc16_14.3 to %return.loc15 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -345,8 +345,8 @@ fn Generic(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.as_type.loc8_10.2 => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n @@ -355,16 +355,16 @@ fn Generic(T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.F(constants.%T.be8) { // CHECK:STDOUT: %T.loc6 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.G(constants.%T.be8) { // CHECK:STDOUT: %T.loc7 => constants.%T.be8 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %pattern_type.loc7_8 => constants.%pattern_type.38d -// CHECK:STDOUT: %T.as_type.loc7_25.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc7_22 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc7_22 => constants.%pattern_type.17e4b7.1 // 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 5cefd27262bc2..142f73200e78b 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.117: type = class_type @Outer, @Outer(%T.be8) [symbolic] // CHECK:STDOUT: %Inner.6ee: type = class_type @Inner, @Inner(%T.be8) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Inner.elem.86c: type = unbound_element_type %Inner.6ee, %T.as_type [symbolic] -// CHECK:STDOUT: %struct_type.n.d5b: type = struct_type {.n: %T.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.934: = complete_type_witness %struct_type.n.d5b [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Inner.elem.0ae: type = unbound_element_type %Inner.6ee, %T.binding.as_type [symbolic] +// CHECK:STDOUT: %struct_type.n.789: type = struct_type {.n: %T.binding.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.b23: = complete_type_witness %struct_type.n.789 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.a9d: type = pattern_type %Inner.6ee [symbolic] // CHECK:STDOUT: %Outer.F.type.f58: type = fn_type @Outer.F, @Outer(%T.be8) [symbolic] // CHECK:STDOUT: %Outer.F.5ba: %Outer.F.type.f58 = struct_value () [symbolic] @@ -135,10 +135,10 @@ fn Test() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Inner.d35, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c43: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0f4: %DestroyT.as_type.as.Destroy.impl.Op.type.c43 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1d9: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b25: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1d9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.44b: type = ptr_type %Inner.d35 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0f4, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.b25, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -201,20 +201,20 @@ fn Test() -> i32 { // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Outer.%Inner (constants.%Inner.6ee)] {} {} // CHECK:STDOUT: %Outer.F.decl: @Outer.%Outer.F.type (%Outer.F.type.f58) = fn_decl @Outer.F [symbolic = @Outer.%Outer.F (constants.%Outer.F.5ba)] { -// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.965801.1) = binding_pattern n [concrete] -// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.965801.1) = value_param_pattern %n.patt, call_param0 [concrete] +// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.17e4b7.1) = binding_pattern n [concrete] +// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_8 (%pattern_type.17e4b7.1) = value_param_pattern %n.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @Outer.F.%pattern_type.loc9_14 (%pattern_type.a9d) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_14 (%pattern_type.a9d) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_17: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T.be8) [symbolic = %Inner (constants.%Inner.6ee)] // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc9_17 [symbolic = %Inner (constants.%Inner.6ee)] -// 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: %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: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T.be8)] -// 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: %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: } -// CHECK:STDOUT: %n: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = bind_name n, %n.param +// CHECK:STDOUT: %n: @Outer.F.%T.binding.as_type (%T.binding.as_type) = bind_name n, %n.param // CHECK:STDOUT: %return.param: ref @Outer.F.%Inner (%Inner.6ee) = out_param call_param1 // CHECK:STDOUT: %return: ref @Outer.F.%Inner (%Inner.6ee) = return_slot %return.param // CHECK:STDOUT: } @@ -232,19 +232,19 @@ fn Test() -> i32 { // CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.2: %Copy.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.be8)] -// 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.07c)] +// 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.1cd)] // CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.6ee)] -// CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %T.as_type.loc6_12.2 [symbolic = %Inner.elem (constants.%Inner.elem.86c)] -// 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.d5b)] -// CHECK:STDOUT: %complete_type.loc7_3.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.934)] +// CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %T.binding.as_type [symbolic = %Inner.elem (constants.%Inner.elem.0ae)] +// 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.789)] +// CHECK:STDOUT: %complete_type.loc7_3.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.b23)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T.be8)] -// 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.86c) = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type.loc7_3.1: = complete_type_witness constants.%struct_type.n.d5b [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.934)] +// 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.0ae) = field_decl n, element0 [concrete] +// CHECK:STDOUT: %complete_type.loc7_3.1: = complete_type_witness constants.%struct_type.n.789 [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.b23)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc7_3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -256,31 +256,31 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Outer.F(@Outer.%T.loc4_13.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.be8)] -// 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_8: type = pattern_type %T.as_type.loc9_11.1 [symbolic = %pattern_type.loc9_8 (constants.%pattern_type.965801.1)] +// 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_8: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_8 (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.6ee)] // CHECK:STDOUT: %pattern_type.loc9_14: type = pattern_type %Inner [symbolic = %pattern_type.loc9_14 (constants.%pattern_type.a9d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_14: = require_complete_type %Inner [symbolic = %require_complete.loc9_14 (constants.%require_complete.f2b)] -// CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.as_type.loc9_11.1 [symbolic = %require_complete.loc9_9 (constants.%require_complete.07c)] -// 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.d5b)] +// CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_9 (constants.%require_complete.1cd)] +// 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.789)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc9_38.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc9_38.2 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc9_38.2: @Outer.F.%.loc9_38.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc9_38.2: = specific_impl_function %impl.elem0.loc9_38.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)) -> %return.param: @Outer.F.%Inner (%Inner.6ee) { +// CHECK:STDOUT: fn(%n.param: @Outer.F.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @Outer.F.%Inner (%Inner.6ee) { // CHECK:STDOUT: !entry: -// 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.d5b) = struct_literal (%n.ref) +// 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.789) = struct_literal (%n.ref) // CHECK:STDOUT: %impl.elem0.loc9_38.1: @Outer.F.%.loc9_38.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.2ce)] // 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.as_type.loc9_11.1 (%T.as_type) = class_element_access %return, element0 -// CHECK:STDOUT: %.loc9_38.1: init @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = call %bound_method.loc9_38.2(%n.ref) to %.loc9_39.2 -// CHECK:STDOUT: %.loc9_39.3: init @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = initialize_from %.loc9_38.1 to %.loc9_39.2 +// CHECK:STDOUT: %.loc9_39.2: ref @Outer.F.%T.binding.as_type (%T.binding.as_type) = class_element_access %return, element0 +// CHECK:STDOUT: %.loc9_38.1: init @Outer.F.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc9_38.2(%n.ref) to %.loc9_39.2 +// CHECK:STDOUT: %.loc9_39.3: init @Outer.F.%T.binding.as_type (%T.binding.as_type) = initialize_from %.loc9_38.1 to %.loc9_39.2 // CHECK:STDOUT: %.loc9_39.4: init @Outer.F.%Inner (%Inner.6ee) = class_init (%.loc9_39.3), %return // CHECK:STDOUT: %.loc9_40: init @Outer.F.%Inner (%Inner.6ee) = converted %.loc9_39.1, %.loc9_39.4 // CHECK:STDOUT: return %.loc9_40 to %return @@ -340,11 +340,11 @@ fn Test() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc14_11.2(%.loc14_11.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Inner.d35, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%Inner.d35, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.0f4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.0f4, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b25 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b25, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.44b = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -360,18 +360,18 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @Inner(constants.%T.be8) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc6_12.2 => constants.%T.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd // CHECK:STDOUT: %Inner => constants.%Inner.6ee -// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.86c -// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.d5b -// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.934 +// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.0ae +// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.789 +// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.b23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.F(constants.%T.be8) { // CHECK:STDOUT: %T => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc9_8 => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc9_8 => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: %Inner => constants.%Inner.6ee // CHECK:STDOUT: %pattern_type.loc9_14 => constants.%pattern_type.a9d // CHECK:STDOUT: } @@ -388,7 +388,7 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @Inner(constants.%Copy.facet.c49) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%Copy.facet.c49 -// CHECK:STDOUT: %T.as_type.loc6_12.2 => constants.%i32 +// CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: %Inner => constants.%Inner.d35 // CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.7f6 @@ -398,7 +398,7 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.F(constants.%Copy.facet.c49) { // CHECK:STDOUT: %T => constants.%Copy.facet.c49 -// CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%i32 +// CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %pattern_type.loc9_8 => constants.%pattern_type.7ce // CHECK:STDOUT: %Inner => constants.%Inner.d35 // CHECK:STDOUT: %pattern_type.loc9_14 => constants.%pattern_type.8e8 @@ -426,8 +426,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %Outer.9d6: type = class_type @Outer, @Outer(%T) [symbolic] // CHECK:STDOUT: %Inner.type.d07: type = facet_type <@Inner, @Inner(%T)> [symbolic] // CHECK:STDOUT: %Self.f03: %Inner.type.d07 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.bd3: type = facet_access_type %Self.f03 [symbolic] -// CHECK:STDOUT: %pattern_type.120: type = pattern_type %Self.as_type.bd3 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.b52: type = symbolic_binding_type Self, 1, %Self.f03 [symbolic] +// CHECK:STDOUT: %pattern_type.992: type = pattern_type %Self.binding.as_type.b52 [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic] // CHECK:STDOUT: %Inner.F.type.0f3: type = fn_type @Inner.F, @Inner(%T) [symbolic] // CHECK:STDOUT: %Inner.F.db9: %Inner.F.type.0f3 = struct_value () [symbolic] @@ -484,10 +484,10 @@ fn Test() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.70f, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.be9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.46c: %DestroyT.as_type.as.Destroy.impl.Op.type.be9 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.602: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.55c: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.602 = struct_value () [concrete] // CHECK:STDOUT: %ptr.18f: type = ptr_type %C.70f [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.46c, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.55c, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -540,20 +540,20 @@ fn Test() -> i32 { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @Inner.%Inner.type (%Inner.type.d07) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.f03)] // CHECK:STDOUT: %Inner.F.decl: @Inner.%Inner.F.type (%Inner.F.type.0f3) = fn_decl @Inner.F [symbolic = @Inner.%Inner.F (constants.%Inner.F.db9)] { -// CHECK:STDOUT: %self.patt: @Inner.F.%pattern_type.loc6_10 (%pattern_type.120) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Inner.F.%pattern_type.loc6_10 (%pattern_type.120) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Inner.F.%pattern_type.loc6_10 (%pattern_type.992) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Inner.F.%pattern_type.loc6_10 (%pattern_type.992) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @Inner.F.%pattern_type.loc6_24 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Inner.F.%pattern_type.loc6_24 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Inner.F.%Self.as_type.loc6_16.1 (%Self.as_type.bd3) = 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.bd3)] { +// CHECK:STDOUT: %self.param: @Inner.F.%Self.binding.as_type (%Self.binding.as_type.b52) = 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.b52)] { // CHECK:STDOUT: %.loc6_16.2: @Inner.F.%Inner.type (%Inner.type.d07) = specific_constant @Inner.%Self.1, @Inner(constants.%T) [symbolic = %Self (constants.%Self.f03)] // CHECK:STDOUT: %Self.ref: @Inner.F.%Inner.type (%Inner.type.d07) = name_ref Self, %.loc6_16.2 [symbolic = %Self (constants.%Self.f03)] -// 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.bd3)] -// 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.bd3)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b52)] +// CHECK:STDOUT: %.loc6_16.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b52)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Inner.F.%Self.as_type.loc6_16.1 (%Self.as_type.bd3) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Inner.F.%Self.binding.as_type (%Self.binding.as_type.b52) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Inner.F.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Inner.F.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -695,11 +695,11 @@ fn Test() -> i32 { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.d07)] // CHECK:STDOUT: %Self: @Inner.F.%Inner.type (%Inner.type.d07) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.f03)] -// CHECK:STDOUT: %Self.as_type.loc6_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.bd3)] -// CHECK:STDOUT: %pattern_type.loc6_10: type = pattern_type %Self.as_type.loc6_16.1 [symbolic = %pattern_type.loc6_10 (constants.%pattern_type.120)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b52)] +// CHECK:STDOUT: %pattern_type.loc6_10: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_10 (constants.%pattern_type.992)] // CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %T [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Inner.F.%Self.as_type.loc6_16.1 (%Self.as_type.bd3)) -> %return.param: @Inner.F.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Inner.F.%Self.binding.as_type (%Self.binding.as_type.b52)) -> %return.param: @Inner.F.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.Inner.impl.F(@Outer.%T.loc4_13.2: type) { @@ -778,11 +778,11 @@ fn Test() -> i32 { // CHECK:STDOUT: %C.as.Inner.impl.F.call: init %i32 = call %bound_method.loc24_33(%.loc24_10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.70f, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_3.2: %type_where = converted constants.%C.70f, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.46c -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.46c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.55c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.55c, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.18f = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23(%addr) // CHECK:STDOUT: return %C.as.Inner.impl.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -809,8 +809,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.d07 // CHECK:STDOUT: %Self => constants.%Self.f03 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%Self.as_type.bd3 -// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.120 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.b52 +// CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.992 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -841,7 +841,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.d07 // CHECK:STDOUT: %Self => constants.%Inner.facet.ce6 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.390 +// CHECK:STDOUT: %Self.binding.as_type => constants.%C.390 // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.e59 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7dc // CHECK:STDOUT: } @@ -850,7 +850,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.d07 // CHECK:STDOUT: %Self => constants.%Inner.facet.949 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.390 +// CHECK:STDOUT: %Self.binding.as_type => constants.%C.390 // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.e59 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7dc // CHECK:STDOUT: } @@ -882,7 +882,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.56c // CHECK:STDOUT: %Self => constants.%Inner.facet.d57 -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%D +// CHECK:STDOUT: %Self.binding.as_type => constants.%D // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.510 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7ce // CHECK:STDOUT: } @@ -924,7 +924,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.56c // CHECK:STDOUT: %Self => constants.%Inner.facet.3aa -// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.70f +// CHECK:STDOUT: %Self.binding.as_type => constants.%C.70f // CHECK:STDOUT: %pattern_type.loc6_10 => constants.%pattern_type.de9 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.7ce // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/generic/method_deduce.carbon b/toolchain/check/testdata/class/generic/method_deduce.carbon index 32194f684fe48..e86b6c8cba37c 100644 --- a/toolchain/check/testdata/class/generic/method_deduce.carbon +++ b/toolchain/check/testdata/class/generic/method_deduce.carbon @@ -75,10 +75,10 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.56a: = complete_type_witness %tuple.type.cc6 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -301,11 +301,11 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) { // CHECK:STDOUT: %Class.GetNoDeduce.call: init %tuple.type.cc6 = call %Class.GetNoDeduce.specific_fn(%.loc28_25.6) to %.loc27_54 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc28_25.7: %type_where = converted constants.%A, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_25.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc28_25.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_25.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc28_25.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6db = addr_of %.loc28_25.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %Class.GetNoDeduce.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index 5e79cccfc79bc..20a0416978dc4 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -51,17 +51,17 @@ class Class(T:! type) { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.ebd: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2fa: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4ed: %DestroyT.as_type.as.Destroy.impl.Op.type.2fa = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.751: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b61: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a4e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b61 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.955: type = ptr_type %Class [symbolic] // CHECK:STDOUT: %require_complete.2ae: = require_complete_type %ptr.955 [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class, (%Destroy.impl_witness.ebd) [symbolic] -// CHECK:STDOUT: %.e7b: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.4ed, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class, (%Destroy.impl_witness.751) [symbolic] +// CHECK:STDOUT: %.8a0: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a4e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,8 +71,8 @@ class Class(T:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -183,12 +183,12 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.MakeClass: @Class.F.%Class.MakeClass.type (%Class.MakeClass.type) = struct_value () [symbolic = %Class.MakeClass (constants.%Class.MakeClass)] // CHECK:STDOUT: %Class.MakeClass.specific_fn.loc22_19.2: = specific_function %Class.MakeClass, @Class.MakeClass(%T) [symbolic = %Class.MakeClass.specific_fn.loc22_19.2 (constants.%Class.MakeClass.specific_fn)] // CHECK:STDOUT: %facet_value.loc22_5.2: %type_where = facet_value %Class.loc21_19.2, () [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_5.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.ebd)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc22_5.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.751)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc21_19.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc22_5.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_5.3 (constants.%.e7b)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_5.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.2fa)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @Class.F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.2fa) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.4ed)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc22_5.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %.loc22_5.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_5.3 (constants.%.8a0)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc22_5.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b61)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @Class.F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b61) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a4e)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc22_5.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %ptr: type = ptr_type %Class.loc21_19.2 [symbolic = %ptr (constants.%ptr.955)] // CHECK:STDOUT: %require_complete.loc22: = require_complete_type %ptr [symbolic = %require_complete.loc22 (constants.%require_complete.2ae)] // CHECK:STDOUT: @@ -229,20 +229,20 @@ class Class(T:! type) { // CHECK:STDOUT: %s: ref @Class.F.%Class.loc21_19.2 (%Class) = bind_name s, %s.var // CHECK:STDOUT: %facet_value.loc22_5.1: %type_where = facet_value constants.%Class, () [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] // CHECK:STDOUT: %.loc22_5.2: %type_where = converted constants.%Class, %facet_value.loc22_5.1 [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc22: @Class.F.%.loc22_5.3 (%.e7b) = impl_witness_access constants.%Destroy.impl_witness.ebd, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.4ed)] +// CHECK:STDOUT: %impl.elem0.loc22: @Class.F.%.loc22_5.3 (%.8a0) = impl_witness_access constants.%Destroy.impl_witness.751, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a4e)] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %s.var, %impl.elem0.loc22 -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %s.var, %specific_fn.loc22 // CHECK:STDOUT: %addr.loc22: @Class.F.%ptr (%ptr.955) = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5.2(%addr.loc22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5.2(%addr.loc22) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Class, () [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] // CHECK:STDOUT: %.loc21_5.2: %type_where = converted constants.%Class, %facet_value.loc21 [symbolic = %facet_value.loc22_5.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc21: @Class.F.%.loc22_5.3 (%.e7b) = impl_witness_access constants.%Destroy.impl_witness.ebd, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.4ed)] +// CHECK:STDOUT: %impl.elem0.loc21: @Class.F.%.loc22_5.3 (%.8a0) = impl_witness_access constants.%Destroy.impl_witness.751, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a4e)] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %c.var, %impl.elem0.loc21 -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %c.var, %specific_fn.loc21 // CHECK:STDOUT: %addr.loc21: @Class.F.%ptr (%ptr.955) = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21_5.2(%addr.loc21) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21_5.2(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index a36f70d40e76c..bfbebb2566518 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -227,29 +227,29 @@ fn Run() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.a09: %type_where = facet_value %ptr.c62, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f0a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.a09) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7af: %DestroyT.as_type.as.Destroy.impl.Op.type.f0a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b6c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.a09) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.368: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b6c = struct_value () [concrete] // CHECK:STDOUT: %ptr.c22: type = ptr_type %ptr.c62 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.46e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7af, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.a09) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.934: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.368, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.a09) [concrete] // CHECK:STDOUT: %facet_value.481: %type_where = facet_value %ptr.6cf, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.647: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.481) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.16d: %DestroyT.as_type.as.Destroy.impl.Op.type.647 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f17: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.481) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.6b0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f17 = struct_value () [concrete] // CHECK:STDOUT: %ptr.df0: type = ptr_type %ptr.6cf [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c0f: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.16d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.481) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.981: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.6b0, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.481) [concrete] // CHECK:STDOUT: %facet_value.c58: %type_where = facet_value %ForwardDeclared.7b34f2.1, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.870: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c58) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.189: %DestroyT.as_type.as.Destroy.impl.Op.type.870 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.839: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.189, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c58) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e13: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c58) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.117: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e13 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d08: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.117, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.c58) [concrete] // CHECK:STDOUT: %facet_value.f6b: %type_where = facet_value %Field, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f21: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.f6b) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f20: %DestroyT.as_type.as.Destroy.impl.Op.type.f21 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.380: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.f6b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.82f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.380 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d8b: type = ptr_type %Field [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.64a: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f20, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.f6b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a64: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.82f, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.f6b) [concrete] // CHECK:STDOUT: %facet_value.8d3: %type_where = facet_value %Empty, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e4e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.8d3) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6e7: %DestroyT.as_type.as.Destroy.impl.Op.type.e4e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3d0: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.8d3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.fbd: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3d0 = struct_value () [concrete] // CHECK:STDOUT: %ptr.961: type = ptr_type %Empty [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1a4: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6e7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.8d3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f9d: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.fbd, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.8d3) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -431,39 +431,39 @@ fn Run() { // CHECK:STDOUT: %e: ref %ptr.c62 = bind_name e, %e.var // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%ptr.c62, () [concrete = constants.%facet_value.a09] // CHECK:STDOUT: %.loc18_3: %type_where = converted constants.%ptr.c62, %facet_value.loc18 [concrete = constants.%facet_value.a09] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %e.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7af -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7af, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.a09) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.46e] -// CHECK:STDOUT: %bound_method.loc18: = bound_method %e.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %e.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.368 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.368, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.a09) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.934] +// CHECK:STDOUT: %bound_method.loc18: = bound_method %e.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18: %ptr.c22 = addr_of %e.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%ptr.6cf, () [concrete = constants.%facet_value.481] // CHECK:STDOUT: %.loc16_3: %type_where = converted constants.%ptr.6cf, %facet_value.loc16 [concrete = constants.%facet_value.481] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.16d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.16d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.481) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c0f] -// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6b0 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6b0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.481) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.981] +// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc16_3: %ptr.df0 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16_3) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%ForwardDeclared.7b34f2.1, () [concrete = constants.%facet_value.c58] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%ForwardDeclared.7b34f2.1, %facet_value.loc12 [concrete = constants.%facet_value.c58] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.189 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.189, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c58) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.839] -// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.117 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.117, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c58) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d08] +// CHECK:STDOUT: %bound_method.loc12: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.6cf = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%Field, () [concrete = constants.%facet_value.f6b] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%Field, %facet_value.loc9 [concrete = constants.%facet_value.f6b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f20 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f20, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.f6b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.64a] -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.82f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.82f, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.f6b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a64] +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc9: %ptr.d8b = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%Empty, () [concrete = constants.%facet_value.8d3] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%Empty, %facet_value.loc7 [concrete = constants.%facet_value.8d3] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6e7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6e7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.8d3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1a4] -// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fbd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fbd, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.8d3) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f9d] +// CHECK:STDOUT: %bound_method.loc7: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc7: %ptr.961 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import_base.carbon b/toolchain/check/testdata/class/import_base.carbon index 339b972c8cf59..c16026f8432ac 100644 --- a/toolchain/check/testdata/class/import_base.carbon +++ b/toolchain/check/testdata/class/import_base.carbon @@ -183,10 +183,10 @@ fn Run() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Child, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2ac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.db4: %DestroyT.as_type.as.Destroy.impl.Op.type.2ac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e3e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.9d4: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e3e = struct_value () [concrete] // CHECK:STDOUT: %ptr.dc0: type = ptr_type %Child [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.db4, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.9d4, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -306,11 +306,11 @@ fn Run() { // CHECK:STDOUT: %Base.F.call: init %empty_tuple.type = call %Base.F.bound(%.loc9_3.3) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Child, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%Child, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.db4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.db4, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9d4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9d4, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.dc0 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import_member_cycle.carbon b/toolchain/check/testdata/class/import_member_cycle.carbon index e41a9fd30dbf2..db184b8fb54a0 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -83,10 +83,10 @@ fn Run() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.257, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4ea: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8cd: %DestroyT.as_type.as.Destroy.impl.Op.type.4ea = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e87: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.d80: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e87 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d80: type = ptr_type %ptr.257 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.8cd, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.d80, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -135,11 +135,11 @@ fn Run() { // CHECK:STDOUT: %a: ref %ptr.257 = bind_name a, %a.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%ptr.257, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%ptr.257, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8cd -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.8cd, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d80 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d80, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d80 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index a1f2e3212e948..bd16eb57cbacf 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -73,10 +73,10 @@ fn F() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.635: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,11 +169,11 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc21_37.2(%.loc21_37.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc21_26.11: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc21_26.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc21_26.5: = bound_method %.loc21_26.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc21_26.10, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc21_26.5: = bound_method %.loc21_26.10, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc21_26.10 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_26.5(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_26.5(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index b10f461105eb6..7e2f73aadc084 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -81,10 +81,10 @@ class A { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.06a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68a: %DestroyT.as_type.as.Destroy.impl.Op.type.06a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4b6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.6d1: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4b6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bac: type = ptr_type %B [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.68a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.6d1, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -172,11 +172,11 @@ class A { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc26_20.2(%.loc26_20.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_19.3: %type_where = converted constants.%B, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_19.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.68a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.68a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_19: = bound_method %.loc26_19.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_19.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6d1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6d1, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_19: = bound_method %.loc26_19.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bac = addr_of %.loc26_19.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_19(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_19(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/method.carbon b/toolchain/check/testdata/class/method.carbon index 068c00aa2735a..3873a78f59eb7 100644 --- a/toolchain/check/testdata/class/method.carbon +++ b/toolchain/check/testdata/class/method.carbon @@ -122,9 +122,9 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.635: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %CallWithAddr.type: type = fn_type @CallWithAddr [concrete] // CHECK:STDOUT: %CallWithAddr: %CallWithAddr.type = struct_value () [concrete] // CHECK:STDOUT: %CallFThroughPointer.type: type = fn_type @CallFThroughPointer [concrete] @@ -402,11 +402,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.F.call: init %i32 = call %Class.F.bound(%.loc39_20.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc39_18.8: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc39_18.7, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc39_18.3: = bound_method %.loc39_18.7, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc39_18.7, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc39_18.3: = bound_method %.loc39_18.7, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc39_18.7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc39_18.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc39_18.3(%addr) // CHECK:STDOUT: return %Class.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -426,11 +426,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.G.call: init %i32 = call %Class.G.bound(%addr.loc44) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc43: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc43: %ptr.e71 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc43) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc43) // CHECK:STDOUT: return %Class.G.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -470,11 +470,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.F.call: init %i32 = call %Class.F.bound(%.loc58_15.3) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc58_15.4: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc58_15.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc58_15.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc58_15.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc58_15.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %.loc58_15.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %Class.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -490,11 +490,11 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %Class.G.call: init %i32 = call %Class.G.bound(%addr.loc62_15.1) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc62_15.3: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc62_15.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc62_15.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc62_15.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc62_15.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc62_15.2: %ptr.e71 = addr_of %.loc62_15.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc62_15.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc62_15.2) // CHECK:STDOUT: return %Class.G.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/nested.carbon b/toolchain/check/testdata/class/nested.carbon index 9b243cd3ab895..3c35f16021fad 100644 --- a/toolchain/check/testdata/class/nested.carbon +++ b/toolchain/check/testdata/class/nested.carbon @@ -80,15 +80,15 @@ fn F(a: Outer*) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c29: %type_where = facet_value %Inner, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.479: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c29) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.450: %DestroyT.as_type.as.Destroy.impl.Op.type.479 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.58c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c29) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b22: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.58c = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.27f: type = pattern_type %ptr.36a [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c29) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.30e: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.b22, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.c29) [concrete] // CHECK:STDOUT: %facet_value.4b4: %type_where = facet_value %Outer, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.926: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4b4) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.581: %DestroyT.as_type.as.Destroy.impl.Op.type.926 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e6a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4b4) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.5f7: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e6a = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.95c: type = pattern_type %ptr.5df [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4b4) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.324: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.5f7, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.4b4) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] @@ -213,18 +213,18 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value.c29] // CHECK:STDOUT: %.loc19: %type_where = converted constants.%Inner, %facet_value.loc19 [concrete = constants.%facet_value.c29] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438] -// CHECK:STDOUT: %bound_method.loc19: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.30e] +// CHECK:STDOUT: %bound_method.loc19: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc19: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%Outer, () [concrete = constants.%facet_value.4b4] // CHECK:STDOUT: %.loc18: %type_where = converted constants.%Outer, %facet_value.loc18 [concrete = constants.%facet_value.4b4] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %o.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.581 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9] -// CHECK:STDOUT: %bound_method.loc18: = bound_method %o.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %o.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f7, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.324] +// CHECK:STDOUT: %bound_method.loc18: = bound_method %o.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18: %ptr.5df = addr_of %o.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18(%addr.loc18) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -246,18 +246,18 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value.c29] // CHECK:STDOUT: %.loc30: %type_where = converted constants.%Inner, %facet_value.loc30 [concrete = constants.%facet_value.c29] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438] -// CHECK:STDOUT: %bound_method.loc30: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.30e] +// CHECK:STDOUT: %bound_method.loc30: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc30: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) // CHECK:STDOUT: %facet_value.loc29: %type_where = facet_value constants.%Outer, () [concrete = constants.%facet_value.4b4] // CHECK:STDOUT: %.loc29: %type_where = converted constants.%Outer, %facet_value.loc29 [concrete = constants.%facet_value.4b4] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %o.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.581 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9] -// CHECK:STDOUT: %bound_method.loc29: = bound_method %o.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %o.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f7, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.324] +// CHECK:STDOUT: %bound_method.loc29: = bound_method %o.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc29: %ptr.5df = addr_of %o.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,18 +279,18 @@ fn F(a: Outer*) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value.loc37: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value.c29] // CHECK:STDOUT: %.loc37: %type_where = converted constants.%Inner, %facet_value.loc37 [concrete = constants.%facet_value.c29] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc37: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.438] -// CHECK:STDOUT: %bound_method.loc37: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc37: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c29) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.30e] +// CHECK:STDOUT: %bound_method.loc37: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc37: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc37: init %empty_tuple.type = call %bound_method.loc37(%addr.loc37) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc37: init %empty_tuple.type = call %bound_method.loc37(%addr.loc37) // CHECK:STDOUT: %facet_value.loc36: %type_where = facet_value constants.%Outer, () [concrete = constants.%facet_value.4b4] // CHECK:STDOUT: %.loc36: %type_where = converted constants.%Outer, %facet_value.loc36 [concrete = constants.%facet_value.4b4] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %o.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.581 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.581, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cc9] -// CHECK:STDOUT: %bound_method.loc36: = bound_method %o.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %o.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f7, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4b4) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.324] +// CHECK:STDOUT: %bound_method.loc36: = bound_method %o.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc36: %ptr.5df = addr_of %o.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36(%addr.loc36) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36(%addr.loc36) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/nested_name.carbon b/toolchain/check/testdata/class/nested_name.carbon index 6c75257eb07eb..242120c10626a 100644 --- a/toolchain/check/testdata/class/nested_name.carbon +++ b/toolchain/check/testdata/class/nested_name.carbon @@ -62,10 +62,10 @@ fn G(o: Outer) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Inner, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.479: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.450: %DestroyT.as_type.as.Destroy.impl.Op.type.479 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.58c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b22: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.58c = struct_value () [concrete] // CHECK:STDOUT: %ptr.36a: type = ptr_type %Inner [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.b22, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,11 +169,11 @@ fn G(o: Outer) { // CHECK:STDOUT: %i: ref %Inner = bind_name i, %i.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Inner, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_3: %type_where = converted constants.%Inner, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.450 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.450, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b22, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.36a = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/raw_self_type.carbon b/toolchain/check/testdata/class/raw_self_type.carbon index 3df9ddf76b86e..fdfcbfe53b822 100644 --- a/toolchain/check/testdata/class/raw_self_type.carbon +++ b/toolchain/check/testdata/class/raw_self_type.carbon @@ -52,10 +52,10 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.e71, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7e3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.079: %DestroyT.as_type.as.Destroy.impl.Op.type.7e3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a63: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.1b5: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a63 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0dd: type = ptr_type %ptr.e71 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.079, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.1b5, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %MemberNamedSelf: type = class_type @MemberNamedSelf [concrete] // CHECK:STDOUT: %Self.362: type = class_type @Self [concrete] // CHECK:STDOUT: %pattern_type.356: type = pattern_type %MemberNamedSelf [concrete] @@ -175,18 +175,18 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {} // CHECK:STDOUT: %p: ref %ptr.e71 = bind_name p, %p.var // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%ptr.e71, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_5: %type_where = converted constants.%ptr.e71, %facet_value.loc18 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.079 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.079, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b5, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_5: = bound_method %p.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18: %ptr.0dd = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_5(%addr.loc18) // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%ptr.e71, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc17_5: %type_where = converted constants.%ptr.e71, %facet_value.loc17 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %Self.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.079 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.079, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc17: = bound_method %Self.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %Self.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1b5, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc17: = bound_method %Self.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.0dd = addr_of %Self.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17(%addr.loc17) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index bd0d2a892b57b..c7de45808b964 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -128,25 +128,25 @@ class A { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.1f3: %type_where = facet_value %D, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.473: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.1f3) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c27: %DestroyT.as_type.as.Destroy.impl.Op.type.473 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.265: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.1f3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.82c: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.265 = struct_value () [concrete] // CHECK:STDOUT: %ptr.321: type = ptr_type %D [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c92: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c27, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.1f3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9ff: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.82c, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.1f3) [concrete] // CHECK:STDOUT: %facet_value.fa1: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.006: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.fa1) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf0: %DestroyT.as_type.as.Destroy.impl.Op.type.006 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b4b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.fa1) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.cbb: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b4b = struct_value () [concrete] // CHECK:STDOUT: %ptr.388: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bf0, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.fa1) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ddd: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.cbb, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.fa1) [concrete] // CHECK:STDOUT: %facet_value.69b: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cf4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.69b) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cec: %DestroyT.as_type.as.Destroy.impl.Op.type.cf4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.09d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.69b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.966: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.09d = struct_value () [concrete] // CHECK:STDOUT: %ptr.01b: type = ptr_type %B [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.fed: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cec, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.69b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cfd: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.966, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.69b) [concrete] // CHECK:STDOUT: %facet_value.bb7: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e = struct_value () [concrete] // CHECK:STDOUT: %ptr.6db: type = ptr_type %A [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.bb7) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ae6: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.bb7) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -351,32 +351,32 @@ class A { // CHECK:STDOUT: %D.DF.call: init %empty_tuple.type = call %DF.ref() // CHECK:STDOUT: %facet_value.loc36: %type_where = facet_value constants.%D, () [concrete = constants.%facet_value.1f3] // CHECK:STDOUT: %.loc36_7.2: %type_where = converted constants.%D, %facet_value.loc36 [concrete = constants.%facet_value.1f3] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c27 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c27, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.1f3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c92] -// CHECK:STDOUT: %bound_method.loc36_7: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc36: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.82c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.82c, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.1f3) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9ff] +// CHECK:STDOUT: %bound_method.loc36_7: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc36: %ptr.321 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_7(%addr.loc36) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc36: init %empty_tuple.type = call %bound_method.loc36_7(%addr.loc36) // CHECK:STDOUT: %facet_value.loc35: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.fa1] // CHECK:STDOUT: %.loc35_7.2: %type_where = converted constants.%C, %facet_value.loc35 [concrete = constants.%facet_value.fa1] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf0 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.fa1) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d] -// CHECK:STDOUT: %bound_method.loc35_7: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cbb +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cbb, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.fa1) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ddd] +// CHECK:STDOUT: %bound_method.loc35_7: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc35: %ptr.388 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_7(%addr.loc35) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_7(%addr.loc35) // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value.69b] // CHECK:STDOUT: %.loc34_7.2: %type_where = converted constants.%B, %facet_value.loc34 [concrete = constants.%facet_value.69b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cec -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cec, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.69b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.fed] -// CHECK:STDOUT: %bound_method.loc34_7: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.966 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.966, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.69b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cfd] +// CHECK:STDOUT: %bound_method.loc34_7: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc34: %ptr.01b = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_7(%addr.loc34) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_7(%addr.loc34) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value.bb7] // CHECK:STDOUT: %.loc33_7.2: %type_where = converted constants.%A, %facet_value.loc33 [concrete = constants.%facet_value.bb7] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.bb7) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a1] -// CHECK:STDOUT: %bound_method.loc33_7: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.bb7) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ae6] +// CHECK:STDOUT: %bound_method.loc33_7: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc33: %ptr.6db = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_7(%addr.loc33) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_7(%addr.loc33) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index a115aef83448f..81a5094d3fab3 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -75,10 +75,10 @@ fn Run() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -207,18 +207,18 @@ fn Run() { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc31: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc31_3: %type_where = converted constants.%i32, %facet_value.loc31 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc31: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc31: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_3: %type_where = converted constants.%i32, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc30: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc30: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/static_method.carbon b/toolchain/check/testdata/class/static_method.carbon index cb77e261598ab..c25f49a4f360c 100644 --- a/toolchain/check/testdata/class/static_method.carbon +++ b/toolchain/check/testdata/class/static_method.carbon @@ -41,10 +41,10 @@ fn Run() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.635: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -113,11 +113,11 @@ fn Run() -> i32 { // CHECK:STDOUT: %Class.F.call: init %i32 = call %F.ref() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20: %type_where = converted constants.%Class, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e71 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %Class.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index ebc1ba64144da..1b479f3a588ea 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -645,10 +645,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Derived, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b9f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.834: %DestroyT.as_type.as.Destroy.impl.Op.type.b9f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9fe: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.59f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9fe = struct_value () [concrete] // CHECK:STDOUT: %ptr.404: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.834, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.59f, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -750,11 +750,11 @@ class T2(G2:! type) { // CHECK:STDOUT: %d: ref %Derived = bind_name d, %d.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Derived, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%Derived, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.834 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.834, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.59f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.59f, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.404 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -872,10 +872,10 @@ class T2(G2:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Base, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c02: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.97a: %DestroyT.as_type.as.Destroy.impl.Op.type.c02 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.5bf: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.6f8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.5bf = struct_value () [concrete] // CHECK:STDOUT: %ptr.f03: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.97a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.6f8, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -941,11 +941,11 @@ class T2(G2:! type) { // CHECK:STDOUT: %v: ref %Base = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Base, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%Base, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.97a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.97a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6f8, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f03 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1090,20 +1090,20 @@ class T2(G2:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.5f9: %type_where = facet_value %B2, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5f9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.159: %DestroyT.as_type.as.Destroy.impl.Op.type.fc2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.02f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5f9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.9ab: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.02f = struct_value () [concrete] // CHECK:STDOUT: %ptr.afe: type = ptr_type %B2 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.159, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5f9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.202: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.9ab, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.5f9) [concrete] // CHECK:STDOUT: %facet_value.bf5: %type_where = facet_value %B1, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.68e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.bf5) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.3d7: %DestroyT.as_type.as.Destroy.impl.Op.type.68e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.bf5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.1ac: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] // CHECK:STDOUT: %ptr.890: type = ptr_type %B1 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7ca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.3d7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.bf5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a00: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.1ac, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.bf5) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1273,25 +1273,25 @@ class T2(G2:! type) { // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc21_3.2: %type_where = converted constants.%C, %facet_value.loc21 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc21: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%B2, () [concrete = constants.%facet_value.5f9] // CHECK:STDOUT: %.loc20_3.2: %type_where = converted constants.%B2, %facet_value.loc20 [concrete = constants.%facet_value.5f9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %b2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.159 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.159, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.5f9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6a8] -// CHECK:STDOUT: %bound_method.loc20: = bound_method %b2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %b2.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9ab +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9ab, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.5f9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.202] +// CHECK:STDOUT: %bound_method.loc20: = bound_method %b2.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20: %ptr.afe = addr_of %b2.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%B1, () [concrete = constants.%facet_value.bf5] // CHECK:STDOUT: %.loc19_3.2: %type_where = converted constants.%B1, %facet_value.loc19 [concrete = constants.%facet_value.bf5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.3d7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.3d7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.bf5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7ca] -// CHECK:STDOUT: %bound_method.loc19: = bound_method %b1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1ac +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1ac, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.bf5) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a00] +// CHECK:STDOUT: %bound_method.loc19: = bound_method %b1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc19: %ptr.890 = addr_of %b1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1404,15 +1404,15 @@ class T2(G2:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.361: %type_where = facet_value %Base, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.473: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.361) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.12d: %DestroyT.as_type.as.Destroy.impl.Op.type.473 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.739: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.361) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f51: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.739 = struct_value () [concrete] // CHECK:STDOUT: %ptr.11f: type = ptr_type %Base [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7f2: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.12d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.361) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.77c: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f51, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.361) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1575,25 +1575,25 @@ class T2(G2:! type) { // CHECK:STDOUT: assign %.loc16_5, %.loc16_9 // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%Base, () [concrete = constants.%facet_value.361] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%Base, %facet_value.loc14 [concrete = constants.%facet_value.361] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.12d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.12d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7f2] -// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b2.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f51 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f51, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.77c] +// CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b2.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.11f = addr_of %b2.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_3(%addr.loc14) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_3(%addr.loc14) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%Base, () [concrete = constants.%facet_value.361] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%Base, %facet_value.loc13 [concrete = constants.%facet_value.361] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %b1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.12d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.12d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7f2] -// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %b1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f51 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f51, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.361) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.77c] +// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13: %ptr.11f = addr_of %b1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13_3(%addr.loc13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13_3(%addr.loc13) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc12_3.2: %type_where = converted constants.%i32, %facet_value.loc12 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %i.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc12_3.3: = bound_method %i.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %i.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc12_3.3: = bound_method %i.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc12: %ptr.235 = addr_of %i.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_3.3(%addr.loc12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_3.3(%addr.loc12) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/basics.carbon b/toolchain/check/testdata/const/basics.carbon index d95038fcc39e6..1f6f7c112dd11 100644 --- a/toolchain/check/testdata/const/basics.carbon +++ b/toolchain/check/testdata/const/basics.carbon @@ -74,8 +74,8 @@ fn G(p: const (const C)**) -> C** { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.333: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.be8) [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.756: %const.as.Copy.impl.Op.type.333 = struct_value () [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.c2e: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.be8) [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.a33: %const.as.Copy.impl.Op.type.c2e = struct_value () [symbolic] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.31f: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.8b3) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.8a8: %ptr.as.Copy.impl.Op.type.31f = struct_value () [symbolic] @@ -92,17 +92,17 @@ fn G(p: const (const C)**) -> C** { // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.impl_witness.999: = impl_witness imports.%Copy.impl_witness_table.53c, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %Copy.facet.9e3: %Copy.type = facet_value %ptr.019, (%Copy.impl_witness.999) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.64c: = impl_witness imports.%Copy.impl_witness_table.83a, @const.as.Copy.impl(%Copy.facet.9e3) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.f31: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.9e3) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.415: %const.as.Copy.impl.Op.type.f31 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.777: %Copy.type = facet_value %const.2b1, (%Copy.impl_witness.64c) [concrete] -// CHECK:STDOUT: %.1bd: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.777 [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.415, @const.as.Copy.impl.Op(%Copy.facet.9e3) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.f32: = impl_witness imports.%Copy.impl_witness_table.9cd, @const.as.Copy.impl(%Copy.facet.9e3) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.395: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.9e3) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.bb2: %const.as.Copy.impl.Op.type.395 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.c1b: %Copy.type = facet_value %const.2b1, (%Copy.impl_witness.f32) [concrete] +// CHECK:STDOUT: %.8d1: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.c1b [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.bb2, @const.as.Copy.impl.Op(%Copy.facet.9e3) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.c13: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.333) = 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.756)] -// CHECK:STDOUT: %Copy.impl_witness_table.83a = impl_witness_table (%Core.import_ref.c13), @const.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.722: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.c2e) = 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.a33)] +// CHECK:STDOUT: %Copy.impl_witness_table.9cd = impl_witness_table (%Core.import_ref.722), @const.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.import_ref.0e4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.31f) = 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.8a8)] // CHECK:STDOUT: %Copy.impl_witness_table.53c = impl_witness_table (%Core.import_ref.0e4), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } @@ -166,7 +166,7 @@ fn G(p: const (const C)**) -> C** { // CHECK:STDOUT: %p.ref: %const.2b1 = name_ref p, %p // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%ptr.019, (constants.%Copy.impl_witness.999) [concrete = constants.%Copy.facet.9e3] // CHECK:STDOUT: %.loc11: %Copy.type = converted constants.%ptr.019, %Copy.facet [concrete = constants.%Copy.facet.9e3] -// CHECK:STDOUT: %impl.elem0: %.1bd = impl_witness_access constants.%Copy.impl_witness.64c, element0 [concrete = constants.%const.as.Copy.impl.Op.415] +// CHECK:STDOUT: %impl.elem0: %.8d1 = impl_witness_access constants.%Copy.impl_witness.f32, element0 [concrete = constants.%const.as.Copy.impl.Op.bb2] // 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.9e3) [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/array.carbon b/toolchain/check/testdata/deduce/array.carbon index 3caa22eb6b073..60281dbd0d179 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -161,9 +161,9 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f70: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -285,11 +285,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn(%.loc10) to %.loc8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -372,9 +372,9 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f70: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.595: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -517,11 +517,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%.loc10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -579,9 +579,9 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f70: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -695,11 +695,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -760,9 +760,9 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f70: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.8eb: = complete_type_witness %array_type.15a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -886,11 +886,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %C = call %F.specific_fn() to %.loc8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -976,9 +976,9 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.fe4, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9be: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6f0: %DestroyT.as_type.as.Destroy.impl.Op.type.9be = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6f0, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.64a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.1d7: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.64a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.1d7, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %complete_type.dd1: = complete_type_witness %array_type.002 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.595: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -1131,11 +1131,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.fe4, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.2: %type_where = converted constants.%array_type.fe4, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6f0 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6f0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1d7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1d7, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.af6 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1190,7 +1190,7 @@ fn G() -> i32 { // CHECK:STDOUT: %bound_method.b86: = bound_method %N.51e, %Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call: init Core.IntLiteral = call %bound_method.b86(%N.51e) [symbolic] // CHECK:STDOUT: %array_type.566: type = array_type %Int.as.ImplicitAs.impl.Convert.call, %C [symbolic] -// CHECK:STDOUT: %pattern_type.9a8f: type = pattern_type %array_type.566 [symbolic] +// CHECK:STDOUT: %pattern_type.9a8: type = pattern_type %array_type.566 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.0fa: = require_complete_type %array_type.566 [symbolic] @@ -1221,9 +1221,9 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type.002, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d02: %DestroyT.as_type.as.Destroy.impl.Op.type.0fd = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f70: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1b2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1256,8 +1256,8 @@ fn G() -> i32 { // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %N.patt: %pattern_type.7ce = symbolic_binding_pattern N, 0 [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.9a8f) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.9a8f) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.9a8) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.9a8) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { @@ -1311,7 +1311,7 @@ fn G() -> i32 { // CHECK:STDOUT: %bound_method.loc6_27.1: = bound_method %N.loc6_6.1, constants.%Int.as.ImplicitAs.impl.Convert.specific_fn [symbolic = %bound_method.loc6_27.1 (constants.%bound_method.b86)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc6_27.1: init Core.IntLiteral = call %bound_method.loc6_27.1(%N.loc6_6.1) [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc6_27.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %array_type.loc6_28.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc6_27.1, constants.%C [symbolic = %array_type.loc6_28.1 (constants.%array_type.566)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_28.1 [symbolic = %pattern_type (constants.%pattern_type.9a8f)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc6_28.1 [symbolic = %pattern_type (constants.%pattern_type.9a8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %array_type.loc6_28.1 [symbolic = %require_complete (constants.%require_complete.0fa)] @@ -1366,11 +1366,11 @@ fn G() -> i32 { // CHECK:STDOUT: %a.ref: ref %array_type.002 = name_ref a, %a // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type.002, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%array_type.002, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.d02 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d02, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f70, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1380,6 +1380,6 @@ fn G() -> i32 { // CHECK:STDOUT: %bound_method.loc6_27.1 => constants.%bound_method.b86 // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.call.loc6_27.1 => constants.%Int.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %array_type.loc6_28.1 => constants.%array_type.566 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a8f +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a8 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/binding_pattern.carbon b/toolchain/check/testdata/deduce/binding_pattern.carbon index 4ead9c3bd4e5b..9190829e0e162 100644 --- a/toolchain/check/testdata/deduce/binding_pattern.carbon +++ b/toolchain/check/testdata/deduce/binding_pattern.carbon @@ -272,18 +272,18 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %pattern_type.b07: type = pattern_type %type_where [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %C.33a: type = class_type @C, @C(%V.as_type) [symbolic] -// CHECK:STDOUT: %C.Create.type.3cd: type = fn_type @C.Create, @C(%V.as_type) [symbolic] -// CHECK:STDOUT: %C.Create.57e: %C.Create.type.3cd = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.c82: = require_complete_type %C.33a [symbolic] -// CHECK:STDOUT: %pattern_type.d47: type = pattern_type %V.as_type [symbolic] -// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.57e, @C.Create(%V.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.0f9: = require_complete_type %V.as_type [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.5a7: type = facet_type <@ImplicitAs, @ImplicitAs(%V.as_type)> [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.5b4: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.as_type) [symbolic] -// CHECK:STDOUT: %assoc0.ca8: %ImplicitAs.assoc_type.5b4 = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic] -// CHECK:STDOUT: %require_complete.cec: = require_complete_type %ImplicitAs.type.5a7 [symbolic] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 1, %V [symbolic] +// CHECK:STDOUT: %C.8ae: type = class_type @C, @C(%V.binding.as_type) [symbolic] +// CHECK:STDOUT: %C.Create.type.1be: type = fn_type @C.Create, @C(%V.binding.as_type) [symbolic] +// CHECK:STDOUT: %C.Create.587: %C.Create.type.1be = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.6bf: = require_complete_type %C.8ae [symbolic] +// CHECK:STDOUT: %pattern_type.340: type = pattern_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.587, @C.Create(%V.binding.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.c65: = require_complete_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.3ef: type = facet_type <@ImplicitAs, @ImplicitAs(%V.binding.as_type)> [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.150: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.binding.as_type) [symbolic] +// CHECK:STDOUT: %assoc0.43b: %ImplicitAs.assoc_type.150 = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic] +// CHECK:STDOUT: %require_complete.752: = require_complete_type %ImplicitAs.type.3ef [symbolic] // CHECK:STDOUT: %assoc0.dc0: %ImplicitAs.assoc_type.ca0 = assoc_entity element0, imports.%Core.import_ref.207 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -380,33 +380,33 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %V.loc9_16.1: %type_where = bind_symbolic_name V, 1 [symbolic = %V.loc9_16.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %V.as_type.loc20_6.2: type = facet_access_type %V.loc9_16.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.33a)] -// CHECK:STDOUT: %require_complete.loc20_7: = require_complete_type %C.loc20_6.2 [symbolic = %require_complete.loc20_7 (constants.%require_complete.c82)] -// 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.3cd)] -// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.3cd) = struct_value () [symbolic = %C.Create (constants.%C.Create.57e)] -// 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.0f9)] -// 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.5a7)] -// CHECK:STDOUT: %require_complete.loc20_16.2: = require_complete_type %ImplicitAs.type.loc20_16.2 [symbolic = %require_complete.loc20_16.2 (constants.%require_complete.cec)] -// 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.5b4)] -// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.5b4) = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic = %assoc0 (constants.%assoc0.ca8)] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 1, %V.loc9_16.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.8ae)] +// CHECK:STDOUT: %require_complete.loc20_7: = require_complete_type %C.loc20_6.2 [symbolic = %require_complete.loc20_7 (constants.%require_complete.6bf)] +// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%V.binding.as_type) [symbolic = %C.Create.type (constants.%C.Create.type.1be)] +// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.1be) = struct_value () [symbolic = %C.Create (constants.%C.Create.587)] +// 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.c65)] +// 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.3ef)] +// CHECK:STDOUT: %require_complete.loc20_16.2: = require_complete_type %ImplicitAs.type.loc20_16.2 [symbolic = %require_complete.loc20_16.2 (constants.%require_complete.752)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.binding.as_type) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.150)] +// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.150) = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic = %assoc0 (constants.%assoc0.43b)] // 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_16.2 [symbolic = %V.loc9_16.1 (constants.%V)] -// 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.33a)] -// CHECK:STDOUT: %.loc20_7: @F.%C.Create.type (%C.Create.type.3cd) = specific_constant @C.%C.Create.decl, @C(constants.%V.as_type) [symbolic = %C.Create (constants.%C.Create.57e)] -// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.3cd) = name_ref Create, %.loc20_7 [symbolic = %C.Create (constants.%C.Create.57e)] +// 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.8ae)] +// CHECK:STDOUT: %.loc20_7: @F.%C.Create.type (%C.Create.type.1be) = specific_constant @C.%C.Create.decl, @C(constants.%V.binding.as_type) [symbolic = %C.Create (constants.%C.Create.587)] +// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.1be) = name_ref Create, %.loc20_7 [symbolic = %C.Create (constants.%C.Create.587)] // CHECK:STDOUT: %.loc20_16.1: %empty_struct_type = struct_literal () -// 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.5a7)] -// CHECK:STDOUT: %.loc20_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.5b4) = specific_constant imports.%Core.import_ref.492, @ImplicitAs(constants.%V.as_type) [symbolic = %assoc0 (constants.%assoc0.ca8)] -// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.5b4) = name_ref Convert, %.loc20_16.2 [symbolic = %assoc0 (constants.%assoc0.ca8)] -// CHECK:STDOUT: %.loc20_16.3: @F.%V.as_type.loc20_6.2 (%V.as_type) = converted %.loc20_16.1, [concrete = ] +// 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.3ef)] +// CHECK:STDOUT: %.loc20_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.150) = specific_constant imports.%Core.import_ref.492, @ImplicitAs(constants.%V.binding.as_type) [symbolic = %assoc0 (constants.%assoc0.43b)] +// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.150) = name_ref Convert, %.loc20_16.2 [symbolic = %assoc0 (constants.%assoc0.43b)] +// CHECK:STDOUT: %.loc20_16.3: @F.%V.binding.as_type (%V.binding.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: } @@ -430,19 +430,19 @@ fn F(U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %V.loc9_16.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%V.as_type) { -// CHECK:STDOUT: %T.loc4_9.1 => constants.%V.as_type +// CHECK:STDOUT: specific @C(constants.%V.binding.as_type) { +// CHECK:STDOUT: %T.loc4_9.1 => constants.%V.binding.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.3cd -// CHECK:STDOUT: %C.Create => constants.%C.Create.57e +// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.1be +// CHECK:STDOUT: %C.Create => constants.%C.Create.587 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.Create(constants.%V.as_type) { -// CHECK:STDOUT: %T => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d47 +// 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.340 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.0f9 +// CHECK:STDOUT: %require_complete => constants.%require_complete.c65 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index c2cad1f9fad37..0f8408e1bcba0 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -758,10 +758,10 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %WithNontype.b82, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.058: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c50: %DestroyT.as_type.as.Destroy.impl.Op.type.058 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.623: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.d28: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.623 = struct_value () [concrete] // CHECK:STDOUT: %ptr.791: type = ptr_type %WithNontype.b82 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c50, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.d28, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.bound.894: = bound_method %int_0.6a9, %Int.as.Copy.impl.Op.f59 [concrete] // CHECK:STDOUT: %bound_method.84d: = bound_method %int_0.6a9, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: } @@ -898,11 +898,11 @@ fn G() -> i32 { // CHECK:STDOUT: %F.call: init %i32 = call %F.specific_fn(%.loc9_15.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%WithNontype.b82, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_13.5: %type_where = converted constants.%WithNontype.b82, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.c50 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c50, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_13: = bound_method %.loc9_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d28 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d28, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9_13: = bound_method %.loc9_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.791 = addr_of %.loc9_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_13(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_13(%addr) // CHECK:STDOUT: return %F.call to %return // 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 78372b3ed8c97..81ae6f8e2f911 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -137,15 +137,15 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.a52: %type_where = facet_value %HoldsType.c09, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6cc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.a52) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f7f: %DestroyT.as_type.as.Destroy.impl.Op.type.6cc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9fa: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.a52) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.c3e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9fa = struct_value () [concrete] // CHECK:STDOUT: %ptr.79a: type = ptr_type %HoldsType.c09 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f7f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.a52) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.90d: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.c3e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.a52) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -272,18 +272,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.2, %.loc13_30.6) // CHECK:STDOUT: %facet_value.loc13_30: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc13_30.7: %type_where = converted constants.%C, %facet_value.loc13_30 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_30: = bound_method %.loc13_30.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc13_30: = bound_method %.loc13_30.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_30: = bound_method %.loc13_30.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315] +// CHECK:STDOUT: %bound_method.loc13_30: = bound_method %.loc13_30.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_30: %ptr.019 = addr_of %.loc13_30.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_30: init %empty_tuple.type = call %bound_method.loc13_30(%addr.loc13_30) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_30: init %empty_tuple.type = call %bound_method.loc13_30(%addr.loc13_30) // CHECK:STDOUT: %facet_value.loc13_6: %type_where = facet_value constants.%HoldsType.c09, () [concrete = constants.%facet_value.a52] // CHECK:STDOUT: %.loc13_6.5: %type_where = converted constants.%HoldsType.c09, %facet_value.loc13_6 [concrete = constants.%facet_value.a52] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.f7f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f7f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.a52) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89c] -// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c3e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c3e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.a52) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.90d] +// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_6: %ptr.79a = addr_of %.loc13_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -353,15 +353,15 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.451: %type_where = facet_value %HoldsType.705, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.971: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.451) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6c7: %DestroyT.as_type.as.Destroy.impl.Op.type.971 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.aa6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.451) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.2c1: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.aa6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d1: type = ptr_type %HoldsType.705 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cd1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.6c7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.451) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.0e1: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.2c1, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.451) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -485,18 +485,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc13_8.2, %.loc13_33.6) // CHECK:STDOUT: %facet_value.loc13_33: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc13_33.7: %type_where = converted constants.%C, %facet_value.loc13_33 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_33: = bound_method %.loc13_33.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315] +// CHECK:STDOUT: %bound_method.loc13_33: = bound_method %.loc13_33.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_33: %ptr.019 = addr_of %.loc13_33.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_33: init %empty_tuple.type = call %bound_method.loc13_33(%addr.loc13_33) // CHECK:STDOUT: %facet_value.loc13_6: %type_where = facet_value constants.%HoldsType.705, () [concrete = constants.%facet_value.451] // CHECK:STDOUT: %.loc13_6.5: %type_where = converted constants.%HoldsType.705, %facet_value.loc13_6 [concrete = constants.%facet_value.451] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6c7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.6c7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.451) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cd1] -// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_6: = bound_method %.loc13_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.2c1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.2c1, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.451) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.0e1] +// CHECK:STDOUT: %bound_method.loc13_6: = bound_method %.loc13_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc13_6: %ptr.5d1 = addr_of %.loc13_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_6: init %empty_tuple.type = call %bound_method.loc13_6(%addr.loc13_6) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -573,21 +573,21 @@ fn G() { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.1b5: %type_where = facet_value %HoldsType.f95cf2.2, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.bff: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.1b5) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a27: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.1b5) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.fbc: %DestroyT.as_type.as.Destroy.impl.Op.type.a27 = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.406: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.1b5) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.6c2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.1b5) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.46e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.6c2 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.deb: type = ptr_type %HoldsType.f95cf2.2 [symbolic] -// CHECK:STDOUT: %Destroy.facet.954: %Destroy.type = facet_value %HoldsType.f95cf2.2, (%Destroy.impl_witness.bff) [symbolic] -// CHECK:STDOUT: %.5b2: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.954 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ccf: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.fbc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.1b5) [symbolic] +// CHECK:STDOUT: %Destroy.facet.d84: %Destroy.type = facet_value %HoldsType.f95cf2.2, (%Destroy.impl_witness.406) [symbolic] +// CHECK:STDOUT: %.5aa: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.d84 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.59e: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.46e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.1b5) [symbolic] // CHECK:STDOUT: %facet_value.d3d: %type_where = facet_value %Class, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7c2: %DestroyT.as_type.as.Destroy.impl.Op.type.bd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.635: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.179 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e71: type = ptr_type %Class [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ab0: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d3d) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -601,8 +601,8 @@ fn G() { // CHECK:STDOUT: %Core.import_ref.f97: %type.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.40f = impl_witness_table (%Core.import_ref.f97), @type.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -739,19 +739,19 @@ fn G() { // CHECK:STDOUT: %.loc27_26: %empty_struct_type = struct_literal () // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%HoldsType.f95cf2.2, () [symbolic = constants.%facet_value.1b5] // CHECK:STDOUT: %.loc27_6.5: %type_where = converted constants.%HoldsType.f95cf2.2, %facet_value.loc27 [symbolic = constants.%facet_value.1b5] -// CHECK:STDOUT: %impl.elem0.loc27: %.5b2 = impl_witness_access constants.%Destroy.impl_witness.bff, element0 [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.fbc] +// CHECK:STDOUT: %impl.elem0.loc27: %.5aa = impl_witness_access constants.%Destroy.impl_witness.406, element0 [symbolic = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.46e] // CHECK:STDOUT: %bound_method.loc27_6.1: = bound_method %.loc27_6.4, %impl.elem0.loc27 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc27, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.1b5) [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.ccf] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc27, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.1b5) [symbolic = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.59e] // CHECK:STDOUT: %bound_method.loc27_6.2: = bound_method %.loc27_6.4, %specific_fn // CHECK:STDOUT: %addr.loc27: %ptr.deb = addr_of %.loc27_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_6.2(%addr.loc27) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_6.2(%addr.loc27) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%Class, () [concrete = constants.%facet_value.d3d] // CHECK:STDOUT: %.loc26_26.7: %type_where = converted constants.%Class, %facet_value.loc26 [concrete = constants.%facet_value.d3d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_26.6, constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7c2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.043] -// CHECK:STDOUT: %bound_method.loc26_26: = bound_method %.loc26_26.6, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc26_26.6, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.635, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d3d) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.ab0] +// CHECK:STDOUT: %bound_method.loc26_26: = bound_method %.loc26_26.6, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc26: %ptr.e71 = addr_of %.loc26_26.6 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_26(%addr.loc26) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -831,9 +831,9 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9e6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.74c: %DestroyT.as_type.as.Destroy.impl.Op.type.9e6 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.74c, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9c2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.59a: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9c2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.59a, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -976,11 +976,11 @@ fn G() { // CHECK:STDOUT: %.loc24_48: %empty_struct_type = struct_literal () // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_27.4: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_27.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.74c -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.74c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc24_27: = bound_method %.loc24_27.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_27.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.59a +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.59a, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc24_27: = bound_method %.loc24_27.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ea3 = addr_of %.loc24_27.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc24_27(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc24_27(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/aggregates.carbon b/toolchain/check/testdata/eval/aggregates.carbon index 9ff06c5bf5855..805267b6f0835 100644 --- a/toolchain/check/testdata/eval/aggregates.carbon +++ b/toolchain/check/testdata/eval/aggregates.carbon @@ -516,34 +516,34 @@ fn G(N:! i32) { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.daa: %type_where = facet_value %array_type.ec2, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.866: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.daa) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.daa) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c0f: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.aac: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.daa) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.26c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.daa) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.1fc: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.26c = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.b09: = require_complete_type %ptr.1a0 [symbolic] -// CHECK:STDOUT: %Destroy.facet.ab3: %Destroy.type = facet_value %array_type.ec2, (%Destroy.impl_witness.866) [symbolic] -// CHECK:STDOUT: %.c92: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.ab3 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c0f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.daa) [symbolic] +// CHECK:STDOUT: %Destroy.facet.1a3: %Destroy.type = facet_value %array_type.ec2, (%Destroy.impl_witness.aac) [symbolic] +// CHECK:STDOUT: %.0ab: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.1a3 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.deb: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.1fc, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.daa) [symbolic] // CHECK:STDOUT: %facet_value.6d7: %type_where = facet_value %struct_type.a, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.76b: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.6d7) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.60c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.6d7) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.3bc: %DestroyT.as_type.as.Destroy.impl.Op.type.60c = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.aae: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.6d7) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.fa3: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.6d7) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b12: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.fa3 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.48a: type = ptr_type %struct_type.a [symbolic] // CHECK:STDOUT: %require_complete.86d: = require_complete_type %ptr.48a [symbolic] -// CHECK:STDOUT: %Destroy.facet.ad9: %Destroy.type = facet_value %struct_type.a, (%Destroy.impl_witness.76b) [symbolic] -// CHECK:STDOUT: %.60b: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.ad9 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4b1: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.3bc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.6d7) [symbolic] +// CHECK:STDOUT: %Destroy.facet.8be: %Destroy.type = facet_value %struct_type.a, (%Destroy.impl_witness.aae) [symbolic] +// CHECK:STDOUT: %.50f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.8be [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cc0: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.b12, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.6d7) [symbolic] // CHECK:STDOUT: %facet_value.2b4: %type_where = facet_value %tuple.type.4f2, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.55e: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.2b4) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.870: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.2b4) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8f8: %DestroyT.as_type.as.Destroy.impl.Op.type.870 = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.875: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2b4) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3b6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2b4) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.fb3: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3b6 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.6cd: type = ptr_type %tuple.type.4f2 [symbolic] // CHECK:STDOUT: %require_complete.66e: = require_complete_type %ptr.6cd [symbolic] -// CHECK:STDOUT: %Destroy.facet.fc2: %Destroy.type = facet_value %tuple.type.4f2, (%Destroy.impl_witness.55e) [symbolic] -// CHECK:STDOUT: %.8dd: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.fc2 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.918: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.8f8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.2b4) [symbolic] +// CHECK:STDOUT: %Destroy.facet.4d7: %Destroy.type = facet_value %tuple.type.4f2, (%Destroy.impl_witness.875) [symbolic] +// CHECK:STDOUT: %.b81: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.4d7 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a6e: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.fb3, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.2b4) [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.51e: %i32 = bind_symbolic_name N, 0 [symbolic] @@ -566,18 +566,18 @@ fn G(N:! i32) { // CHECK:STDOUT: %require_complete.4c7: = require_complete_type %array_type.120 [symbolic] // CHECK:STDOUT: %pattern_type.aeb: type = pattern_type %array_type.120 [symbolic] // CHECK:STDOUT: %facet_value.8b7: %type_where = facet_value %array_type.120, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.1ab: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.8b7) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.8b7) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c52: %DestroyT.as_type.as.Destroy.impl.Op.type.cb6 = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.349: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.8b7) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c77: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.8b7) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.0e5: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c77 = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.9c4: = require_complete_type %ptr.743 [symbolic] -// CHECK:STDOUT: %Destroy.facet.9bf: %Destroy.type = facet_value %array_type.120, (%Destroy.impl_witness.1ab) [symbolic] -// CHECK:STDOUT: %.c5e: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.9bf [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.58d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c52, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.8b7) [symbolic] +// CHECK:STDOUT: %Destroy.facet.182: %Destroy.type = facet_value %array_type.120, (%Destroy.impl_witness.349) [symbolic] +// CHECK:STDOUT: %.728: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.182 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f2e: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.0e5, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.8b7) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.import_ref.25c: @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert.type (%Int.as.ImplicitAs.impl.Convert.type.543) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.ImplicitAs.impl.%Int.as.ImplicitAs.impl.Convert (constants.%Int.as.ImplicitAs.impl.Convert.c08)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.e99 = impl_witness_table (%Core.import_ref.25c), @Int.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } @@ -598,30 +598,30 @@ fn G(N:! i32) { // CHECK:STDOUT: %require_complete.loc8_20: = require_complete_type %array_type.loc8_20.2 [symbolic = %require_complete.loc8_20 (constants.%require_complete.fe1)] // CHECK:STDOUT: %pattern_type.loc8: type = pattern_type %array_type.loc8_20.2 [symbolic = %pattern_type.loc8 (constants.%pattern_type.035)] // CHECK:STDOUT: %facet_value.loc8_3.2: %type_where = facet_value %array_type.loc8_20.2, () [symbolic = %facet_value.loc8_3.2 (constants.%facet_value.daa)] -// CHECK:STDOUT: %Destroy.impl_witness.loc8: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc8_3.2) [symbolic = %Destroy.impl_witness.loc8 (constants.%Destroy.impl_witness.866)] -// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_20.2, (%Destroy.impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.ab3)] -// CHECK:STDOUT: %.loc8_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc8 [symbolic = %.loc8_3.2 (constants.%.c92)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.loc8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc8_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.0ad)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.loc8: @F.%DestroyT.as_type.as.Destroy.impl.Op.type.loc8 (%DestroyT.as_type.as.Destroy.impl.Op.type.0ad) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.c0f)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.loc8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc8_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d)] +// CHECK:STDOUT: %Destroy.impl_witness.loc8: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc8_3.2) [symbolic = %Destroy.impl_witness.loc8 (constants.%Destroy.impl_witness.aac)] +// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_20.2, (%Destroy.impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.1a3)] +// CHECK:STDOUT: %.loc8_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc8 [symbolic = %.loc8_3.2 (constants.%.0ab)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc8_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc8 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.26c)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.loc8: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc8 (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.26c) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.loc8 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1fc)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc8: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.loc8, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc8_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc8 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.deb)] // CHECK:STDOUT: %ptr.loc8: type = ptr_type %array_type.loc8_20.2 [symbolic = %ptr.loc8 (constants.%ptr.1a0)] // CHECK:STDOUT: %require_complete.loc8_3: = require_complete_type %ptr.loc8 [symbolic = %require_complete.loc8_3 (constants.%require_complete.b09)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %struct_type.a.loc7_16.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.6d7)] -// CHECK:STDOUT: %Destroy.impl_witness.loc7: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness.loc7 (constants.%Destroy.impl_witness.76b)] -// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_16.2, (%Destroy.impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.ad9)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc7 [symbolic = %.loc7_3.2 (constants.%.60b)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.loc7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.60c)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.loc7: @F.%DestroyT.as_type.as.Destroy.impl.Op.type.loc7 (%DestroyT.as_type.as.Destroy.impl.Op.type.60c) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.3bc)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc7: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.loc7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4b1)] +// CHECK:STDOUT: %Destroy.impl_witness.loc7: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness.loc7 (constants.%Destroy.impl_witness.aae)] +// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_16.2, (%Destroy.impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.8be)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc7 [symbolic = %.loc7_3.2 (constants.%.50f)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc7: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc7 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.fa3)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.loc7: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc7 (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.fa3) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.loc7 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b12)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc7: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.loc7, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc7 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cc0)] // CHECK:STDOUT: %ptr.loc7: type = ptr_type %struct_type.a.loc7_16.2 [symbolic = %ptr.loc7 (constants.%ptr.48a)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7 [symbolic = %require_complete.loc7_3 (constants.%require_complete.86d)] // CHECK:STDOUT: %facet_value.loc6_3.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc6_3.2 (constants.%facet_value.2b4)] -// CHECK:STDOUT: %Destroy.impl_witness.loc6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc6_3.2) [symbolic = %Destroy.impl_witness.loc6 (constants.%Destroy.impl_witness.55e)] -// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.fc2)] -// CHECK:STDOUT: %.loc6_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc6 [symbolic = %.loc6_3.2 (constants.%.8dd)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.loc6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc6_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.870)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.loc6: @F.%DestroyT.as_type.as.Destroy.impl.Op.type.loc6 (%DestroyT.as_type.as.Destroy.impl.Op.type.870) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.8f8)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc6: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.loc6, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc6_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.918)] +// CHECK:STDOUT: %Destroy.impl_witness.loc6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc6_3.2) [symbolic = %Destroy.impl_witness.loc6 (constants.%Destroy.impl_witness.875)] +// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.4d7)] +// CHECK:STDOUT: %.loc6_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet.loc6 [symbolic = %.loc6_3.2 (constants.%.b81)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc6_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc6 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.3b6)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.loc6: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.loc6 (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.3b6) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.loc6 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fb3)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc6: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.loc6, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc6_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc6 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a6e)] // CHECK:STDOUT: %ptr.loc6_3: type = ptr_type %tuple.type [symbolic = %ptr.loc6_3 (constants.%ptr.6cd)] // CHECK:STDOUT: %require_complete.loc6_3: = require_complete_type %ptr.loc6_3 [symbolic = %require_complete.loc6_3 (constants.%require_complete.66e)] // CHECK:STDOUT: @@ -664,28 +664,28 @@ fn G(N:! i32) { // CHECK:STDOUT: %w: ref @F.%array_type.loc8_20.2 (%array_type.ec2) = bind_name w, %w.var // CHECK:STDOUT: %facet_value.loc8_3.1: %type_where = facet_value constants.%array_type.ec2, () [symbolic = %facet_value.loc8_3.2 (constants.%facet_value.daa)] // CHECK:STDOUT: %.loc8_3.1: %type_where = converted constants.%array_type.ec2, %facet_value.loc8_3.1 [symbolic = %facet_value.loc8_3.2 (constants.%facet_value.daa)] -// CHECK:STDOUT: %impl.elem0.loc8: @F.%.loc8_3.2 (%.c92) = impl_witness_access constants.%Destroy.impl_witness.866, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.c0f)] +// CHECK:STDOUT: %impl.elem0.loc8: @F.%.loc8_3.2 (%.0ab) = impl_witness_access constants.%Destroy.impl_witness.aac, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.loc8 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1fc)] // CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %w.var, %impl.elem0.loc8 -// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.daa) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc8 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.f0d)] +// CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.daa) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc8 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.deb)] // CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %w.var, %specific_fn.loc8 // CHECK:STDOUT: %addr.loc8: @F.%ptr.loc8 (%ptr.1a0) = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.2(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.2(%addr.loc8) // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%struct_type.a, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.6d7)] // CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%struct_type.a, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.6d7)] -// CHECK:STDOUT: %impl.elem0.loc7: @F.%.loc7_3.2 (%.60b) = impl_witness_access constants.%Destroy.impl_witness.76b, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.3bc)] +// CHECK:STDOUT: %impl.elem0.loc7: @F.%.loc7_3.2 (%.50f) = impl_witness_access constants.%Destroy.impl_witness.aae, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.loc7 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b12)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0.loc7 -// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.6d7) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc7 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4b1)] +// CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.6d7) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc7 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cc0)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn.loc7 // CHECK:STDOUT: %addr.loc7: @F.%ptr.loc7 (%ptr.48a) = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr.loc7) // CHECK:STDOUT: %facet_value.loc6_3.1: %type_where = facet_value constants.%tuple.type.4f2, () [symbolic = %facet_value.loc6_3.2 (constants.%facet_value.2b4)] // CHECK:STDOUT: %.loc6_3.1: %type_where = converted constants.%tuple.type.4f2, %facet_value.loc6_3.1 [symbolic = %facet_value.loc6_3.2 (constants.%facet_value.2b4)] -// CHECK:STDOUT: %impl.elem0.loc6: @F.%.loc6_3.2 (%.8dd) = impl_witness_access constants.%Destroy.impl_witness.55e, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.8f8)] +// CHECK:STDOUT: %impl.elem0.loc6: @F.%.loc6_3.2 (%.b81) = impl_witness_access constants.%Destroy.impl_witness.875, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.loc6 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fb3)] // CHECK:STDOUT: %bound_method.loc6_3.1: = bound_method %u.var, %impl.elem0.loc6 -// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.2b4) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc6 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.918)] +// CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.2b4) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc6 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a6e)] // CHECK:STDOUT: %bound_method.loc6_3.2: = bound_method %u.var, %specific_fn.loc6 // CHECK:STDOUT: %addr.loc6: @F.%ptr.loc6_3 (%ptr.6cd) = addr_of %u.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6_3.2(%addr.loc6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6_3.2(%addr.loc6) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -701,12 +701,12 @@ fn G(N:! i32) { // CHECK:STDOUT: %require_complete.loc14_22: = require_complete_type %array_type.loc14_22.2 [symbolic = %require_complete.loc14_22 (constants.%require_complete.4c7)] // CHECK:STDOUT: %pattern_type: type = pattern_type %array_type.loc14_22.2 [symbolic = %pattern_type (constants.%pattern_type.aeb)] // CHECK:STDOUT: %facet_value.loc14_3.2: %type_where = facet_value %array_type.loc14_22.2, () [symbolic = %facet_value.loc14_3.2 (constants.%facet_value.8b7)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc14_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.1ab)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc14_22.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.9bf)] -// CHECK:STDOUT: %.loc14_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc14_3.2 (constants.%.c5e)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc14_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.cb6)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @G.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.cb6) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.c52)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc14_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.58d)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc14_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.349)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %array_type.loc14_22.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.182)] +// CHECK:STDOUT: %.loc14_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc14_3.2 (constants.%.728)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc14_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.c77)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @G.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.c77) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0e5)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc14_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f2e)] // CHECK:STDOUT: %ptr: type = ptr_type %array_type.loc14_22.2 [symbolic = %ptr (constants.%ptr.743)] // CHECK:STDOUT: %require_complete.loc14_3: = require_complete_type %ptr [symbolic = %require_complete.loc14_3 (constants.%require_complete.9c4)] // CHECK:STDOUT: @@ -733,12 +733,12 @@ fn G(N:! i32) { // CHECK:STDOUT: %k: ref @G.%array_type.loc14_22.2 (%array_type.120) = bind_name k, %k.var // CHECK:STDOUT: %facet_value.loc14_3.1: %type_where = facet_value constants.%array_type.120, () [symbolic = %facet_value.loc14_3.2 (constants.%facet_value.8b7)] // CHECK:STDOUT: %.loc14_3.1: %type_where = converted constants.%array_type.120, %facet_value.loc14_3.1 [symbolic = %facet_value.loc14_3.2 (constants.%facet_value.8b7)] -// CHECK:STDOUT: %impl.elem0.loc14_3: @G.%.loc14_3.2 (%.c5e) = impl_witness_access constants.%Destroy.impl_witness.1ab, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.c52)] +// CHECK:STDOUT: %impl.elem0.loc14_3: @G.%.loc14_3.2 (%.728) = impl_witness_access constants.%Destroy.impl_witness.349, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0e5)] // CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %k.var, %impl.elem0.loc14_3 -// CHECK:STDOUT: %specific_fn.loc14_3: = specific_function %impl.elem0.loc14_3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.8b7) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.58d)] +// CHECK:STDOUT: %specific_fn.loc14_3: = specific_function %impl.elem0.loc14_3, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.8b7) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f2e)] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %k.var, %specific_fn.loc14_3 // CHECK:STDOUT: %addr: @G.%ptr (%ptr.743) = addr_of %k.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/facet/access.carbon b/toolchain/check/testdata/facet/access.carbon index c792a1ba6e915..cb52ecdf12bd3 100644 --- a/toolchain/check/testdata/facet/access.carbon +++ b/toolchain/check/testdata/facet/access.carbon @@ -195,7 +195,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%I.DoIt.decl [concrete] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.edc: type = fn_type_with_self_type %I.DoIt.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.edc = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -209,7 +209,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc10_4.2: type = facet_access_type %T.loc8_8.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_8.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type constants.%I.DoIt.type, %T.loc8_8.1 [symbolic = %.loc10_4.2 (constants.%.edc)] // CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4.2 (%.edc) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] @@ -219,8 +219,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_8.2 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: %DoIt.ref: %I.assoc_type = name_ref DoIt, @I.%assoc0 [concrete = constants.%assoc0] -// 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: %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: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.edc) = 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.DoIt(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc10_10: init %empty_tuple.type = call %specific_impl_fn.loc10_4.1() @@ -240,8 +240,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%I.Make.decl [concrete] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.d22d6c.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.3f7859.2: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.07c: type = fn_type_with_self_type %I.Make.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.07c = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -261,24 +261,24 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.07c) = 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.Make(%T.loc8_8.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @Use.%T.as_type.loc8_18.1 (%T.as_type) { +// CHECK:STDOUT: fn() -> %return.param: @Use.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_8.2 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: %Make.ref: %I.assoc_type = name_ref Make, @I.%assoc0 [concrete = constants.%assoc0] -// 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: %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: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.07c) = 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.Make(constants.%T) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc8_18.1 (%T.as_type) = call %specific_impl_fn.loc10_11.1() to %.loc8_15 +// CHECK:STDOUT: %.loc10_17: init @Use.%T.binding.as_type (%T.binding.as_type) = call %specific_impl_fn.loc10_11.1() to %.loc8_15 // CHECK:STDOUT: return %.loc10_17 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc8_8.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22d6c.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7859.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_assoc_method.carbon @@ -290,11 +290,11 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%I.Copy.decl [concrete] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.09a: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.d22d6c.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.3f7859.2: type = pattern_type %T.binding.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.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.6f7: type = fn_type_with_self_type %I.Copy.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.6f7 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -307,61 +307,61 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: file { // CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] { // CHECK:STDOUT: %T.patt: %pattern_type.09a = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.d22d6c.2) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.d22d6c.2) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.d22d6c.2) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.d22d6c.2) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.3f7859.2) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.3f7859.2) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.3f7859.2) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.3f7859.2) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_24: %I.type = name_ref T, %T.loc9_8.2 [symbolic = %T.loc9_8.1 (constants.%T)] -// 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: type = converted %T.ref.loc9_24, %T.as_type.loc9_24 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc9_24, %T.as_type.loc9_24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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_8.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_8.1 (constants.%T)] -// 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: %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: %T.ref.loc9_18: %I.type = name_ref T, %T.loc9_8.2 [symbolic = %T.loc9_8.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %x: @Use.%T.as_type.loc9_18.1 (%T.as_type) = bind_name 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: %x: @Use.%T.binding.as_type (%T.binding.as_type) = bind_name 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: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Use(%T.loc9_8.2: %I.type) { // CHECK:STDOUT: %T.loc9_8.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_8.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_18.1: type = facet_access_type %T.loc9_8.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.d22d6c.2)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_8.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.3f7859.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_18.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc9_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %.loc10_11: type = fn_type_with_self_type constants.%I.Copy.type, %T.loc9_8.1 [symbolic = %.loc10_11 (constants.%.6f7)] // CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11 (%.6f7) = 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.Copy(%T.loc9_8.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc9_18.1 (%T.as_type)) -> %return.param: @Use.%T.as_type.loc9_18.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @Use.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @Use.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc9_18.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Use.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11 (%.6f7) = 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.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_21: ref @Use.%T.as_type.loc9_18.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc10_17: init @Use.%T.as_type.loc9_18.1 (%T.as_type) = call %bound_method.loc10_17(%x.ref) to %.loc9_21 +// CHECK:STDOUT: %.loc9_21: ref @Use.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc10_17: init @Use.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc10_17(%x.ref) to %.loc9_21 // CHECK:STDOUT: return %.loc10_17 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc9_8.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc9_18.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22d6c.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7859.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_selfless_method.carbon @@ -373,8 +373,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%I.Hello.decl [concrete] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.b73: type = fn_type_with_self_type %I.Hello.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.b73 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -394,9 +394,9 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10_4 (%.b73) = 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.Hello(%T.loc8_8.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc8_18.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @Use.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc8_18.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Use.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x // CHECK:STDOUT: %Hello.ref: %I.assoc_type = name_ref Hello, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4 (%.b73) = 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.Hello(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] @@ -407,8 +407,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc8_8.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_assoc_method_indirect.carbon @@ -419,8 +419,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%I.Copy.decl [concrete] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.d22d6c.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.3f7859.2: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.6f7: type = fn_type_with_self_type %I.Copy.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.6f7 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -440,27 +440,27 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %impl.elem0.loc10_14.2: @UseIndirect.%.loc10_14.2 (%.6f7) = 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.Copy(%T.loc8_16.1) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type)) -> %return.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @UseIndirect.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @UseIndirect.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x // CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_16.2 [symbolic = %T.loc8_16.1 (constants.%T)] // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] -// 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: %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: %impl.elem0.loc10_14.1: @UseIndirect.%.loc10_14.2 (%.6f7) = 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.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: %.loc10_21: init @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = call %bound_method.loc10_21(%x.ref) to %.loc8_29 +// CHECK:STDOUT: %.loc10_21: init @UseIndirect.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc10_21(%x.ref) to %.loc8_29 // CHECK:STDOUT: return %.loc10_21 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseIndirect(constants.%T) { // CHECK:STDOUT: %T.loc8_16.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_26.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22d6c.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7859.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_constant_in_self_facet.carbon @@ -470,14 +470,14 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A [concrete] // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, @A.%X [concrete] // CHECK:STDOUT: %.Self.56d: %A.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.56d [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.56d [symbolic_self] // CHECK:STDOUT: %A.lookup_impl_witness.033: = lookup_impl_witness %.Self.56d, @A [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness.033, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %A_where.type: type = facet_type <@A where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %AA: %A_where.type = bind_symbolic_name AA, 0 [symbolic] // CHECK:STDOUT: %pattern_type.14a: type = pattern_type %A_where.type [concrete] -// CHECK:STDOUT: %AA.as_type: type = facet_access_type %AA [symbolic] +// CHECK:STDOUT: %AA.binding.as_type: type = symbolic_binding_type AA, 0, %AA [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.614: = lookup_impl_witness %AA, @A [symbolic] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -496,8 +496,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } { // CHECK:STDOUT: %AA.ref: %A_where.type = name_ref AA, %AA.loc6_6.2 [symbolic = %AA.loc6_6.1 (constants.%AA)] // CHECK:STDOUT: %X.ref.loc6_33: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// 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: type = converted %AA.ref, %AA.as_type.loc6_33.2 [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] +// 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: type = converted %AA.ref, %AA.as_type [symbolic = %AA.binding.as_type (constants.%AA.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc6_33: type = impl_witness_access constants.%A.lookup_impl_witness.614, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc6_13.1: type = splice_block %.loc6_13.2 [concrete = constants.%A_where.type] { // CHECK:STDOUT: @@ -505,8 +505,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.56d] // CHECK:STDOUT: %X.ref.loc6_19: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %impl.elem0.loc6_19: type = impl_witness_access constants.%A.lookup_impl_witness.033, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_25.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc6_25.2: type = converted %.loc6_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -523,7 +523,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%AA.loc6_6.2: %A_where.type) { // CHECK:STDOUT: %AA.loc6_6.1: %A_where.type = bind_symbolic_name AA, 0 [symbolic = %AA.loc6_6.1 (constants.%AA)] -// CHECK:STDOUT: %AA.as_type.loc6_33.1: type = facet_access_type %AA.loc6_6.1 [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] +// CHECK:STDOUT: %AA.binding.as_type: type = symbolic_binding_type AA, 0, %AA.loc6_6.1 [symbolic = %AA.binding.as_type (constants.%AA.binding.as_type)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %AA.loc6_6.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.614)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -539,7 +539,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%AA) { // CHECK:STDOUT: %AA.loc6_6.1 => constants.%AA -// CHECK:STDOUT: %AA.as_type.loc6_33.1 => constants.%AA.as_type +// CHECK:STDOUT: %AA.binding.as_type => constants.%AA.binding.as_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.614 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -563,7 +563,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.c5c: type = facet_type <@A & @B> [concrete] // CHECK:STDOUT: %.Self.f55: %facet_type.c5c = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.f55 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.f55 [symbolic_self] // CHECK:STDOUT: %A.lookup_impl_witness.a95: = lookup_impl_witness %.Self.f55, @A [symbolic_self] // CHECK:STDOUT: %impl.elem0.ade: type = impl_witness_access %A.lookup_impl_witness.a95, element0 [symbolic_self] // CHECK:STDOUT: %B.lookup_impl_witness.214: = lookup_impl_witness %.Self.f55, @B [symbolic_self] @@ -572,7 +572,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: %facet_type.a18: type = facet_type <@A & @B where %impl.elem0.ade = %empty_tuple.type and %impl.elem0.818 = %empty_struct_type> [concrete] // CHECK:STDOUT: %AB: %facet_type.a18 = bind_symbolic_name AB, 0 [symbolic] // CHECK:STDOUT: %pattern_type.e98: type = pattern_type %facet_type.a18 [concrete] -// CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB [symbolic] +// CHECK:STDOUT: %AB.binding.as_type: type = symbolic_binding_type AB, 0, %AB [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.d9a: = lookup_impl_witness %AB, @A [symbolic] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -598,8 +598,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } { // CHECK:STDOUT: %AB.ref: %facet_type.a18 = name_ref AB, %AB.loc14_6.2 [symbolic = %AB.loc14_6.1 (constants.%AB)] // CHECK:STDOUT: %X.ref.loc14_49: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.752] -// 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: type = converted %AB.ref, %AB.as_type.loc14_49.2 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] +// 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: type = converted %AB.ref, %AB.as_type [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc14_49: type = impl_witness_access constants.%A.lookup_impl_witness.d9a, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [concrete = constants.%facet_type.a18] { // CHECK:STDOUT: @@ -613,15 +613,15 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc14_23: %facet_type.c5c = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.f55] // CHECK:STDOUT: %X.ref.loc14_23: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.752] -// 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: %.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: %impl.elem0.loc14_23: type = impl_witness_access constants.%A.lookup_impl_witness.a95, element0 [symbolic_self = constants.%impl.elem0.ade] // CHECK:STDOUT: %.loc14_29.1: %empty_tuple.type = tuple_literal () // 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.c5c = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.f55] // CHECK:STDOUT: %Y.ref: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.081] -// 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: %.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: %impl.elem0.loc14_35: type = impl_witness_access constants.%B.lookup_impl_witness.214, element0 [symbolic_self = constants.%impl.elem0.818] // CHECK:STDOUT: %.loc14_41.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc14_41.2: type = converted %.loc14_41.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -642,8 +642,8 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: } { // CHECK:STDOUT: %AB.ref: %facet_type.a18 = name_ref AB, %AB.loc18_6.2 [symbolic = %AB.loc18_6.1 (constants.%AB)] // CHECK:STDOUT: %Y.ref.loc18_49: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.081] -// 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: type = converted %AB.ref, %AB.as_type.loc18_49.2 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] +// 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: type = converted %AB.ref, %AB.as_type [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc18_49: type = impl_witness_access constants.%B.lookup_impl_witness.628, element0 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc18_17.1: type = splice_block %.loc18_17.2 [concrete = constants.%facet_type.a18] { // CHECK:STDOUT: @@ -657,15 +657,15 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc18_23: %facet_type.c5c = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.f55] // CHECK:STDOUT: %X.ref: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.752] -// 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: %.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: %impl.elem0.loc18_23: type = impl_witness_access constants.%A.lookup_impl_witness.a95, element0 [symbolic_self = constants.%impl.elem0.ade] // CHECK:STDOUT: %.loc18_29.1: %empty_tuple.type = tuple_literal () // 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.c5c = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.f55] // CHECK:STDOUT: %Y.ref.loc18_35: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.081] -// 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: %.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: %impl.elem0.loc18_35: type = impl_witness_access constants.%B.lookup_impl_witness.214, element0 [symbolic_self = constants.%impl.elem0.818] // CHECK:STDOUT: %.loc18_41.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc18_41.2: type = converted %.loc18_41.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -683,7 +683,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%AB.loc14_6.2: %facet_type.a18) { // CHECK:STDOUT: %AB.loc14_6.1: %facet_type.a18 = bind_symbolic_name AB, 0 [symbolic = %AB.loc14_6.1 (constants.%AB)] -// CHECK:STDOUT: %AB.as_type.loc14_49.1: type = facet_access_type %AB.loc14_6.1 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %AB.binding.as_type: type = symbolic_binding_type AB, 0, %AB.loc14_6.1 [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %AB.loc14_6.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.d9a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -699,7 +699,7 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%AB.loc18_6.2: %facet_type.a18) { // CHECK:STDOUT: %AB.loc18_6.1: %facet_type.a18 = bind_symbolic_name AB, 0 [symbolic = %AB.loc18_6.1 (constants.%AB)] -// CHECK:STDOUT: %AB.as_type.loc18_49.1: type = facet_access_type %AB.loc18_6.1 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %AB.binding.as_type: type = symbolic_binding_type AB, 0, %AB.loc18_6.1 [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] // CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %AB.loc18_6.1, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness.628)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -715,13 +715,13 @@ fn G(AB:! A & B where .X = () and .Y = {}) -> AB.Y { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%AB) { // CHECK:STDOUT: %AB.loc14_6.1 => constants.%AB -// CHECK:STDOUT: %AB.as_type.loc14_49.1 => constants.%AB.as_type +// CHECK:STDOUT: %AB.binding.as_type => constants.%AB.binding.as_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.d9a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%AB) { // CHECK:STDOUT: %AB.loc18_6.1 => constants.%AB -// CHECK:STDOUT: %AB.as_type.loc18_49.1 => constants.%AB.as_type +// CHECK:STDOUT: %AB.binding.as_type => constants.%AB.binding.as_type // CHECK:STDOUT: %B.lookup_impl_witness => constants.%B.lookup_impl_witness.628 // 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 f256b3c9bce32..b3d30784270af 100644 --- a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon @@ -92,21 +92,21 @@ fn F() { // CHECK:STDOUT: %facet_type.b5f: type = facet_type <@Empty & @A & @B> [concrete] // CHECK:STDOUT: %T: %facet_type.b5f = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.001: type = pattern_type %facet_type.b5f [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.e02: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.81b: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.359: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.a88: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T, @A [symbolic] -// CHECK:STDOUT: %A.facet.d1f: %A.type = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.b2b: type = fn_type_with_self_type %A.AA.type, %A.facet.d1f [symbolic] -// CHECK:STDOUT: %impl.elem0.d41: %.b2b = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.e57: = specific_impl_function %impl.elem0.d41, @A.AA(%A.facet.d1f) [symbolic] +// CHECK:STDOUT: %A.facet.9e8: %A.type = facet_value %T.binding.as_type, (%A.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %.2f8: type = fn_type_with_self_type %A.AA.type, %A.facet.9e8 [symbolic] +// CHECK:STDOUT: %impl.elem0.c9b: %.2f8 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.da8: = specific_impl_function %impl.elem0.c9b, @A.AA(%A.facet.9e8) [symbolic] // CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T, @B [symbolic] -// CHECK:STDOUT: %B.facet.434: %B.type = facet_value %T.as_type, (%B.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.1ce: type = fn_type_with_self_type %B.BB.type, %B.facet.434 [symbolic] -// CHECK:STDOUT: %impl.elem0.629: %.1ce = impl_witness_access %B.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.c90: = specific_impl_function %impl.elem0.629, @B.BB(%B.facet.434) [symbolic] +// CHECK:STDOUT: %B.facet.bd8: %B.type = facet_value %T.binding.as_type, (%B.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %.b7b: type = fn_type_with_self_type %B.BB.type, %B.facet.bd8 [symbolic] +// CHECK:STDOUT: %impl.elem0.9c8: %.b7b = impl_witness_access %B.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.c43: = specific_impl_function %impl.elem0.9c8, @B.BB(%B.facet.bd8) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] @@ -116,10 +116,10 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %.1ee: type = fn_type_with_self_type %A.AA.type, %A.facet.d7e [concrete] // CHECK:STDOUT: %.d72: type = fn_type_with_self_type %B.BB.type, %B.facet.c0b [concrete] // CHECK:STDOUT: } @@ -172,8 +172,8 @@ fn F() { // CHECK:STDOUT: %B.impl_witness: = impl_witness %B.impl_witness_table [concrete = constants.%B.impl_witness] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.001 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.e02) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.e02) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.81b) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.81b) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc33_20.1: type = splice_block %.loc33_20.3 [concrete = constants.%facet_type.b5f] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -192,13 +192,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.b5f] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc33_6.2: %facet_type.b5f = bind_symbolic_name T, 0 [symbolic = %T.loc33_6.1 (constants.%T)] -// 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.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.ref.loc33: %facet_type.b5f = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %t: @G.%T.as_type.loc33_28.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @G.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -286,65 +286,65 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc33_6.2: %facet_type.b5f) { // CHECK:STDOUT: %T.loc33_6.1: %facet_type.b5f = bind_symbolic_name T, 0 [symbolic = %T.loc33_6.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc33_28.1: type = facet_access_type %T.loc33_6.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.e02)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc33_6.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.81b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc33_28.1 [symbolic = %require_complete (constants.%require_complete.359)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.a88)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc33_6.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// 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.d1f)] -// CHECK:STDOUT: %.loc34_4: type = fn_type_with_self_type constants.%A.AA.type, %A.facet.loc34 [symbolic = %.loc34_4 (constants.%.b2b)] -// CHECK:STDOUT: %impl.elem0.loc34_4.2: @G.%.loc34_4 (%.b2b) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.d41)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @A.AA(%A.facet.loc34) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.e57)] +// CHECK:STDOUT: %A.facet.loc34: %A.type = facet_value %T.binding.as_type, (%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.9e8)] +// CHECK:STDOUT: %.loc34_4: type = fn_type_with_self_type constants.%A.AA.type, %A.facet.loc34 [symbolic = %.loc34_4 (constants.%.2f8)] +// CHECK:STDOUT: %impl.elem0.loc34_4.2: @G.%.loc34_4 (%.2f8) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.c9b)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @A.AA(%A.facet.loc34) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.da8)] // CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc33_6.1, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness)] -// 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.434)] -// CHECK:STDOUT: %.loc35_4: type = fn_type_with_self_type constants.%B.BB.type, %B.facet.loc35 [symbolic = %.loc35_4 (constants.%.1ce)] -// CHECK:STDOUT: %impl.elem0.loc35_4.2: @G.%.loc35_4 (%.1ce) = impl_witness_access %B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.629)] -// CHECK:STDOUT: %specific_impl_fn.loc35_4.2: = specific_impl_function %impl.elem0.loc35_4.2, @B.BB(%B.facet.loc35) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c90)] +// CHECK:STDOUT: %B.facet.loc35: %B.type = facet_value %T.binding.as_type, (%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.bd8)] +// CHECK:STDOUT: %.loc35_4: type = fn_type_with_self_type constants.%B.BB.type, %B.facet.loc35 [symbolic = %.loc35_4 (constants.%.b7b)] +// CHECK:STDOUT: %impl.elem0.loc35_4.2: @G.%.loc35_4 (%.b7b) = impl_witness_access %B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.9c8)] +// CHECK:STDOUT: %specific_impl_fn.loc35_4.2: = specific_impl_function %impl.elem0.loc35_4.2, @B.BB(%B.facet.loc35) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c43)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @G.%T.as_type.loc33_28.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @G.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref.loc34: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref.loc34: @G.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t // CHECK:STDOUT: %AA.ref.loc34: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.6e7] -// CHECK:STDOUT: %impl.elem0.loc34_4.1: @G.%.loc34_4 (%.b2b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.d41)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @A.AA(constants.%A.facet.d1f) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.e57)] +// CHECK:STDOUT: %impl.elem0.loc34_4.1: @G.%.loc34_4 (%.2f8) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.c9b)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @A.AA(constants.%A.facet.9e8) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.da8)] // CHECK:STDOUT: %.loc34_8: init %empty_tuple.type = call %specific_impl_fn.loc34_4.1() -// CHECK:STDOUT: %t.ref.loc35: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref.loc35: @G.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t // CHECK:STDOUT: %BB.ref.loc35: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.a29] -// CHECK:STDOUT: %impl.elem0.loc35_4.1: @G.%.loc35_4 (%.1ce) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.629)] -// CHECK:STDOUT: %specific_impl_fn.loc35_4.1: = specific_impl_function %impl.elem0.loc35_4.1, @B.BB(constants.%B.facet.434) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c90)] +// CHECK:STDOUT: %impl.elem0.loc35_4.1: @G.%.loc35_4 (%.b7b) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.9c8)] +// CHECK:STDOUT: %specific_impl_fn.loc35_4.1: = specific_impl_function %impl.elem0.loc35_4.1, @B.BB(constants.%B.facet.bd8) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c43)] // CHECK:STDOUT: %.loc35_8: init %empty_tuple.type = call %specific_impl_fn.loc35_4.1() // CHECK:STDOUT: %T.ref.loc37: %facet_type.b5f = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T)] // CHECK:STDOUT: %AA.ref.loc37: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.6e7] -// 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_4: type = converted %T.ref.loc37, %T.as_type.loc37 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc37: @G.%.loc34_4 (%.b2b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.d41)] -// CHECK:STDOUT: %specific_impl_fn.loc37: = specific_impl_function %impl.elem0.loc37, @A.AA(constants.%A.facet.d1f) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.e57)] +// 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_4: type = converted %T.ref.loc37, %T.as_type.loc37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %impl.elem0.loc37: @G.%.loc34_4 (%.2f8) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.c9b)] +// CHECK:STDOUT: %specific_impl_fn.loc37: = specific_impl_function %impl.elem0.loc37, @A.AA(constants.%A.facet.9e8) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.da8)] // CHECK:STDOUT: %.loc37_8: init %empty_tuple.type = call %specific_impl_fn.loc37() // CHECK:STDOUT: %T.ref.loc38: %facet_type.b5f = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.1 (constants.%T)] // CHECK:STDOUT: %BB.ref.loc38: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.a29] -// 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_4: type = converted %T.ref.loc38, %T.as_type.loc38 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc38: @G.%.loc35_4 (%.1ce) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.629)] -// CHECK:STDOUT: %specific_impl_fn.loc38: = specific_impl_function %impl.elem0.loc38, @B.BB(constants.%B.facet.434) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c90)] +// 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_4: type = converted %T.ref.loc38, %T.as_type.loc38 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %impl.elem0.loc38: @G.%.loc35_4 (%.b7b) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.9c8)] +// CHECK:STDOUT: %specific_impl_fn.loc38: = specific_impl_function %impl.elem0.loc38, @B.BB(constants.%B.facet.bd8) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c43)] // CHECK:STDOUT: %.loc38_8: init %empty_tuple.type = call %specific_impl_fn.loc38() // CHECK:STDOUT: %T.ref.loc40: %facet_type.b5f = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.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.%assoc0 [concrete = constants.%assoc0.6e7] -// 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.d1f)] -// CHECK:STDOUT: %.loc40_4: %A.type = converted %T.ref.loc40, %A.facet.loc40 [symbolic = %A.facet.loc34 (constants.%A.facet.d1f)] -// CHECK:STDOUT: %impl.elem0.loc40: @G.%.loc34_4 (%.b2b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.d41)] -// CHECK:STDOUT: %specific_impl_fn.loc40: = specific_impl_function %impl.elem0.loc40, @A.AA(constants.%A.facet.d1f) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.e57)] +// 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.9e8)] +// CHECK:STDOUT: %.loc40_4: %A.type = converted %T.ref.loc40, %A.facet.loc40 [symbolic = %A.facet.loc34 (constants.%A.facet.9e8)] +// CHECK:STDOUT: %impl.elem0.loc40: @G.%.loc34_4 (%.2f8) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.c9b)] +// CHECK:STDOUT: %specific_impl_fn.loc40: = specific_impl_function %impl.elem0.loc40, @A.AA(constants.%A.facet.9e8) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.da8)] // CHECK:STDOUT: %.loc40_12: init %empty_tuple.type = call %specific_impl_fn.loc40() // CHECK:STDOUT: %T.ref.loc41: %facet_type.b5f = name_ref T, %T.loc33_6.2 [symbolic = %T.loc33_6.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.%assoc0 [concrete = constants.%assoc0.a29] -// 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.434)] -// CHECK:STDOUT: %.loc41_4: %B.type = converted %T.ref.loc41, %B.facet.loc41 [symbolic = %B.facet.loc35 (constants.%B.facet.434)] -// CHECK:STDOUT: %impl.elem0.loc41: @G.%.loc35_4 (%.1ce) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.629)] -// CHECK:STDOUT: %specific_impl_fn.loc41: = specific_impl_function %impl.elem0.loc41, @B.BB(constants.%B.facet.434) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c90)] +// 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.bd8)] +// CHECK:STDOUT: %.loc41_4: %B.type = converted %T.ref.loc41, %B.facet.loc41 [symbolic = %B.facet.loc35 (constants.%B.facet.bd8)] +// CHECK:STDOUT: %impl.elem0.loc41: @G.%.loc35_4 (%.b7b) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.9c8)] +// CHECK:STDOUT: %specific_impl_fn.loc41: = specific_impl_function %impl.elem0.loc41, @B.BB(constants.%B.facet.bd8) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.c43)] // CHECK:STDOUT: %.loc41_12: init %empty_tuple.type = call %specific_impl_fn.loc41() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -368,11 +368,11 @@ fn F() { // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn(%.loc45_8.2) // CHECK:STDOUT: %facet_value.loc45_6: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc45_6.5: %type_where = converted constants.%C, %facet_value.loc45_6 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc45_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc45_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc45_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc45_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc45_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -386,17 +386,17 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { // CHECK:STDOUT: %T.loc33_6.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e02 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.81b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.AA(constants.%A.facet.d1f) {} +// CHECK:STDOUT: specific @A.AA(constants.%A.facet.9e8) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.BB(constants.%B.facet.434) {} +// CHECK:STDOUT: specific @B.BB(constants.%B.facet.bd8) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%facet_value.c74) { // CHECK:STDOUT: %T.loc33_6.1 => constants.%facet_value.c74 -// CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%C +// CHECK:STDOUT: %T.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon index 0b206f34af522..12987d4537764 100644 --- a/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_type_to_generic_facet_value.carbon @@ -410,10 +410,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %GenericParam, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a0a: %DestroyT.as_type.as.Destroy.impl.Op.type.13c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c42: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.951: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c42 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f73: type = ptr_type %GenericParam [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.951, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -562,11 +562,11 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc18_38.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%GenericParam, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_36.5: %type_where = converted constants.%GenericParam, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_36.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.951 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.951, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc18_36.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.f73 = addr_of %.loc18_36.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: 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 56807ffd5741a..ffb2a7f082ebb 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 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %Animal.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3c3: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.29d: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.a4a: type = pattern_type %T.binding.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.210: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.892: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] @@ -51,10 +51,10 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.457: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729 = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.457, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -78,21 +78,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.3c3 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.29d) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.29d) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.a4a) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.a4a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] -// CHECK:STDOUT: %a.param: @WalkAnimal.%T.as_type.loc17_30.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %a.param: @WalkAnimal.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_15.2 [symbolic = %T.loc17_15.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc17_30.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @WalkAnimal.%T.as_type.loc17_30.1 (%T.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @WalkAnimal.%T.binding.as_type (%T.binding.as_type) = bind_name 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] {} { @@ -127,13 +127,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @WalkAnimal(%T.loc17_15.2: %Animal.type) { // CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc17_30.1: type = facet_access_type %T.loc17_15.1 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_30.1 [symbolic = %pattern_type (constants.%pattern_type.29d)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc17_15.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.a4a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_30.1 [symbolic = %require_complete (constants.%require_complete.210)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.892)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @WalkAnimal.%T.as_type.loc17_30.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%a.param: @WalkAnimal.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -157,23 +157,23 @@ fn F() { // CHECK:STDOUT: %WalkAnimal.call: init %empty_tuple.type = call %WalkAnimal.specific_fn(%.loc23_17.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_15.5: %type_where = converted constants.%Goat, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc23_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc23_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.940 = addr_of %.loc23_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%T) { // CHECK:STDOUT: %T.loc17_15.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29d +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc17_15.1 => constants.%Animal.facet -// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%Goat +// CHECK:STDOUT: %T.binding.as_type => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ab7 // 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 cb10244541346..9abe7e6ffd7e9 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 @@ -133,12 +133,12 @@ fn B() { // CHECK:STDOUT: %Generic.F.8a2d67.2: %Generic.F.type.f439a9.2 = struct_value () [symbolic] // CHECK:STDOUT: %Generic.assoc_type.0fd877.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] // CHECK:STDOUT: %assoc0.2966cb.2: %Generic.assoc_type.0fd877.2 = assoc_entity element0, @Generic.%Generic.F.decl [symbolic] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.70f: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U [symbolic] +// CHECK:STDOUT: %pattern_type.977: type = pattern_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.7dc: 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.26c: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %require_complete.c96: = require_complete_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %require_complete.9a6: = require_complete_type %Generic.type.2db63e.2 [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] @@ -156,15 +156,15 @@ fn B() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.6cb: %type_where = facet_value %GenericParam, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.6cb) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a0a: %DestroyT.as_type.as.Destroy.impl.Op.type.13c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c42: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.6cb) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.951: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c42 = struct_value () [concrete] // CHECK:STDOUT: %ptr.f73: type = ptr_type %GenericParam [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.994: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.6cb) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8f6: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.951, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.6cb) [concrete] // CHECK:STDOUT: %facet_value.004: %type_where = facet_value %ImplsGeneric, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.028: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.004) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4ac: %DestroyT.as_type.as.Destroy.impl.Op.type.028 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.044: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.004) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.9d3: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.044 = struct_value () [concrete] // CHECK:STDOUT: %ptr.011: type = ptr_type %ImplsGeneric [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e4a: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.4ac, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.004) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.773: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.9d3, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.004) [concrete] // CHECK:STDOUT: %complete_type.ca2: = complete_type_witness %Generic.type.621 [concrete] // CHECK:STDOUT: %.573: type = fn_type_with_self_type %Generic.F.type.4cf, %Generic.facet [concrete] // CHECK:STDOUT: } @@ -207,8 +207,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_32 (%pattern_type.e93) = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_48 (%pattern_type.70f) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_48 (%pattern_type.70f) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_48 (%pattern_type.977) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_48 (%pattern_type.977) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: %s.patt: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.7dc) = binding_pattern s [concrete] // CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_54 (%pattern_type.7dc) = value_param_pattern %s.patt, call_param1 [concrete] // CHECK:STDOUT: } { @@ -221,13 +221,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.2db63e.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc15_32.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.2db63e.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] -// CHECK:STDOUT: %a.param: @CallGenericMethod.%U.as_type.loc15_51.1 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc15_51.1: type = splice_block %.loc15_51.2 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %a.param: @CallGenericMethod.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc15_51.1: type = splice_block %.loc15_51.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { // CHECK:STDOUT: %U.ref.loc15: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.2db63e.2) = name_ref U, %U.loc15_32.2 [symbolic = %U.loc15_32.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc15_51.2: type = facet_access_type %U.ref.loc15 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc15_51.2: type = converted %U.ref.loc15, %U.as_type.loc15_51.2 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] +// 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_51.2: type = converted %U.ref.loc15, %U.as_type.loc15 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @CallGenericMethod.%U.as_type.loc15_51.1 (%U.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @CallGenericMethod.%U.binding.as_type (%U.binding.as_type) = bind_name a, %a.param // CHECK:STDOUT: %s.param: @CallGenericMethod.%T.loc15_22.1 (%T) = value_param call_param1 // CHECK:STDOUT: %T.ref.loc15_57: type = name_ref T, %T.loc15_22.2 [symbolic = %T.loc15_22.1 (constants.%T)] // CHECK:STDOUT: %s: @CallGenericMethod.%T.loc15_22.1 (%T) = bind_name s, %s.param @@ -296,12 +296,12 @@ fn B() { // CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(%T.loc15_22.1)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.2db63e.2)] // CHECK:STDOUT: %U.loc15_32.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.2db63e.2) = bind_symbolic_name U, 1 [symbolic = %U.loc15_32.1 (constants.%U)] // CHECK:STDOUT: %pattern_type.loc15_32: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type.loc15_32 (constants.%pattern_type.e93)] -// CHECK:STDOUT: %U.as_type.loc15_51.1: type = facet_access_type %U.loc15_32.1 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_48: type = pattern_type %U.as_type.loc15_51.1 [symbolic = %pattern_type.loc15_48 (constants.%pattern_type.70f)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U.loc15_32.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc15_48: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc15_48 (constants.%pattern_type.977)] // CHECK:STDOUT: %pattern_type.loc15_54: type = pattern_type %T.loc15_22.1 [symbolic = %pattern_type.loc15_54 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_49: = require_complete_type %U.as_type.loc15_51.1 [symbolic = %require_complete.loc15_49 (constants.%require_complete.26c)] +// CHECK:STDOUT: %require_complete.loc15_49: = require_complete_type %U.binding.as_type [symbolic = %require_complete.loc15_49 (constants.%require_complete.c96)] // CHECK:STDOUT: %require_complete.loc15_55: = require_complete_type %T.loc15_22.1 [symbolic = %require_complete.loc15_55 (constants.%require_complete.4ae)] // CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Generic.type.loc15_45.1 [symbolic = %require_complete.loc16 (constants.%require_complete.9a6)] // CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc15_22.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.2)] @@ -312,13 +312,13 @@ fn B() { // CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.468) = 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.F(%T.loc15_22.1, %U.loc15_32.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.as_type.loc15_51.1 (%U.as_type), %s.param: @CallGenericMethod.%T.loc15_22.1 (%T)) { +// CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.binding.as_type (%U.binding.as_type), %s.param: @CallGenericMethod.%T.loc15_22.1 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %U.ref.loc16: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.2db63e.2) = name_ref U, %U.loc15_32.2 [symbolic = %U.loc15_32.1 (constants.%U)] // CHECK:STDOUT: %.loc16_4.1: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = specific_constant @Generic.%assoc0.loc5_9.1, @Generic(constants.%T) [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = name_ref F, %.loc16_4.1 [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] -// CHECK:STDOUT: %U.as_type.loc16: type = facet_access_type %U.ref.loc16 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] -// CHECK:STDOUT: %.loc16_4.2: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.as_type.loc15_51.1 (constants.%U.as_type)] +// 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.2: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.468) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Generic.F(constants.%T, constants.%U) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc16_7: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() @@ -349,18 +349,18 @@ fn B() { // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn(%.loc20_24.2, %.loc20_44.2) // CHECK:STDOUT: %facet_value.loc20_42: %type_where = facet_value constants.%GenericParam, () [concrete = constants.%facet_value.6cb] // CHECK:STDOUT: %.loc20_42.5: %type_where = converted constants.%GenericParam, %facet_value.loc20_42 [concrete = constants.%facet_value.6cb] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20_42: = bound_method %.loc20_42.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.a0a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.6cb) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.994] -// CHECK:STDOUT: %bound_method.loc20_42: = bound_method %.loc20_42.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20_42: = bound_method %.loc20_42.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.951 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.951, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.6cb) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8f6] +// CHECK:STDOUT: %bound_method.loc20_42: = bound_method %.loc20_42.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20_42: %ptr.f73 = addr_of %.loc20_42.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20_42: init %empty_tuple.type = call %bound_method.loc20_42(%addr.loc20_42) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20_42: init %empty_tuple.type = call %bound_method.loc20_42(%addr.loc20_42) // CHECK:STDOUT: %facet_value.loc20_22: %type_where = facet_value constants.%ImplsGeneric, () [concrete = constants.%facet_value.004] // CHECK:STDOUT: %.loc20_22.5: %type_where = converted constants.%ImplsGeneric, %facet_value.loc20_22 [concrete = constants.%facet_value.004] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20_22: = bound_method %.loc20_22.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4ac -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.4ac, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.004) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e4a] -// CHECK:STDOUT: %bound_method.loc20_22: = bound_method %.loc20_22.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20_22: = bound_method %.loc20_22.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9d3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9d3, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.004) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.773] +// CHECK:STDOUT: %bound_method.loc20_22: = bound_method %.loc20_22.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20_22: %ptr.011 = addr_of %.loc20_22.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20_22: init %empty_tuple.type = call %bound_method.loc20_22(%addr.loc20_22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20_22: init %empty_tuple.type = call %bound_method.loc20_22(%addr.loc20_22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -401,8 +401,8 @@ fn B() { // CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.2db63e.2 // CHECK:STDOUT: %U.loc15_32.1 => constants.%U // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.e93 -// CHECK:STDOUT: %U.as_type.loc15_51.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.70f +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.977 // CHECK:STDOUT: %pattern_type.loc15_54 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -413,7 +413,7 @@ fn B() { // CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.621 // CHECK:STDOUT: %U.loc15_32.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type.loc15_32 => constants.%pattern_type.c4b -// CHECK:STDOUT: %U.as_type.loc15_51.1 => constants.%ImplsGeneric +// CHECK:STDOUT: %U.binding.as_type => constants.%ImplsGeneric // CHECK:STDOUT: %pattern_type.loc15_48 => constants.%pattern_type.c8d // CHECK:STDOUT: %pattern_type.loc15_54 => constants.%pattern_type.589 // CHECK:STDOUT: @@ -455,11 +455,11 @@ fn B() { // CHECK:STDOUT: %T.305: %I.type.302 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.610: type = pattern_type %I.type.302 [concrete] // CHECK:STDOUT: %Self.16c: %I.type.302 = bind_symbolic_name Self, 2 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.305 [symbolic] -// CHECK:STDOUT: %pattern_type.8a1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.305 [symbolic] +// CHECK:STDOUT: %pattern_type.e17: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.720: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.868: = require_complete_type %T.binding.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] @@ -471,10 +471,10 @@ fn B() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -521,8 +521,8 @@ fn B() { // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table, @C.as.I.impl(constants.%T.8b3) [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.9c7)] // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.610 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.8a1) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.8a1) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.e17) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.e17) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.302] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -534,13 +534,13 @@ fn B() { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_tuple.type)> [concrete = constants.%I.type.302] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_6.2: %I.type.302 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.305)] -// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_24.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %t.param: @A.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %I.type.302 = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.305)] -// CHECK:STDOUT: %T.as_type.loc9_24.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.as_type.loc9_24.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @A.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -586,13 +586,13 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc9_6.2: %I.type.302) { // CHECK:STDOUT: %T.loc9_6.1: %I.type.302 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.305)] -// CHECK:STDOUT: %T.as_type.loc9_24.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_24.1 [symbolic = %pattern_type (constants.%pattern_type.8a1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_6.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.e17)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_24.1 [symbolic = %require_complete (constants.%require_complete.720)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.868)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_24.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -616,11 +616,11 @@ fn B() { // CHECK:STDOUT: %A.call: init %empty_tuple.type = call %A.specific_fn(%.loc12_8.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_6.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc12_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc12_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc12_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -656,8 +656,8 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.305) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.305 -// CHECK:STDOUT: %T.as_type.loc9_24.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8a1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e17 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%empty_struct_type) { @@ -671,7 +671,7 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%I.facet) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%I.facet -// CHECK:STDOUT: %T.as_type.loc9_24.1 => constants.%C +// CHECK:STDOUT: %T.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -703,21 +703,21 @@ fn B() { // CHECK:STDOUT: %T.034: %I.type.1c6 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.1f1: type = pattern_type %I.type.1c6 [concrete] // CHECK:STDOUT: %Self.757: %I.type.1c6 = bind_symbolic_name Self, 2 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.034 [symbolic] -// CHECK:STDOUT: %pattern_type.ca7: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.034 [symbolic] +// CHECK:STDOUT: %pattern_type.390: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.7a0: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.923: = require_complete_type %T.binding.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] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -764,8 +764,8 @@ fn B() { // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table, @C.as.I.impl(constants.%T.8b3) [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness)] // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.1f1 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.ca7) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.ca7) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.390) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.390) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.1c6] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -777,13 +777,13 @@ fn B() { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_struct_type)> [concrete = constants.%I.type.1c6] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_6.2: %I.type.1c6 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.034)] -// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_24.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %t.param: @A.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %I.type.1c6 = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.034)] -// CHECK:STDOUT: %T.as_type.loc9_24.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type.loc9_24.2 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc9_24.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.as_type.loc9_24.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @A.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -829,13 +829,13 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc9_6.2: %I.type.1c6) { // CHECK:STDOUT: %T.loc9_6.1: %I.type.1c6 = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.034)] -// CHECK:STDOUT: %T.as_type.loc9_24.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_24.1 [symbolic = %pattern_type (constants.%pattern_type.ca7)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_6.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.390)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_24.1 [symbolic = %require_complete (constants.%require_complete.7a0)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.923)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_24.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -852,11 +852,11 @@ fn B() { // CHECK:STDOUT: %.loc19_8: ref %C = converted %.loc19_6.1, %.loc19_6.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_6.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc19_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -892,8 +892,8 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.034) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.034 -// CHECK:STDOUT: %T.as_type.loc9_24.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ca7 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.390 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_impl_self_with_fixed_specific.carbon @@ -917,11 +917,11 @@ fn B() { // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table, @C.as.I.impl(%T.8b3) [symbolic] // CHECK:STDOUT: %T.7ee: %I.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.09a: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.7ee [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.7ee [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.742: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.e82: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %C.c74: type = class_type @C, @C(%empty_struct_type, %empty_struct_type) [concrete] @@ -929,10 +929,10 @@ fn B() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.c74, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.26f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.64f: %DestroyT.as_type.as.Destroy.impl.Op.type.26f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e66: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ad9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e66 = struct_value () [concrete] // CHECK:STDOUT: %ptr.128: type = ptr_type %C.c74 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.64f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.ad9, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -979,21 +979,21 @@ fn B() { // CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table, @C.as.I.impl(constants.%T.8b3) [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness)] // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.09a = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.d22) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.d22) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.3f7) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.3f7) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_6.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.7ee)] -// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_16.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %t.param: @A.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.7ee)] -// CHECK:STDOUT: %T.as_type.loc9_16.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc9_16.2: type = converted %T.ref, %T.as_type.loc9_16.2 [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc9_16.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.as_type.loc9_16.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @A.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -1036,13 +1036,13 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc9_6.2: %I.type) { // CHECK:STDOUT: %T.loc9_6.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.7ee)] -// CHECK:STDOUT: %T.as_type.loc9_16.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_16.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_16.1 [symbolic = %pattern_type (constants.%pattern_type.d22)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_6.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.3f7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_16.1 [symbolic = %require_complete (constants.%require_complete.742)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.e82)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_16.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1064,11 +1064,11 @@ fn B() { // CHECK:STDOUT: %.loc19_8: ref %C.c74 = converted %.loc19_6.1, %.loc19_6.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.c74, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_6.5: %type_where = converted constants.%C.c74, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.64f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.64f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc19_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ad9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ad9, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc19_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.128 = addr_of %.loc19_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1090,8 +1090,8 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.7ee) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.7ee -// CHECK:STDOUT: %T.as_type.loc9_16.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // 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 99dcc66b80910..509f1d4b4dd56 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 @@ -150,8 +150,8 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %.843: type = fn_type_with_self_type %Eats.Eat.type, %Eats.facet [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.457: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729 = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -217,25 +217,25 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: %Goat.as.Eats.impl.Eat.call.loc27: init %empty_tuple.type = call %impl.elem0.loc27() // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_6.5: %type_where = converted constants.%Goat, %facet_value.loc27 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27: %ptr.940 = addr_of %.loc27_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_6.5: %type_where = converted constants.%Goat, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.940 = addr_of %.loc26_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_28.5: %type_where = converted constants.%Goat, %facet_value.loc22 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_28.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_28.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc22: = bound_method %.loc22_28.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc22: = bound_method %.loc22_28.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.940 = addr_of %.loc22_28.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -244,13 +244,13 @@ 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 = bind_symbolic_name A, 0 [symbolic] -// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %B: %A.as_type = bind_symbolic_name B, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.8ba: type = pattern_type %A.as_type [symbolic] +// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] +// CHECK:STDOUT: %B: %A.binding.as_type = bind_symbolic_name B, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.a23: type = pattern_type %A.binding.as_type [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C, @C(%A, %B) [symbolic] -// CHECK:STDOUT: %require_complete.8dd: = require_complete_type %A.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.f19: type = pattern_type %C [symbolic] +// CHECK:STDOUT: %require_complete.bb1: = require_complete_type %A.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.e0c: 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] @@ -259,7 +259,7 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: imports { // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%A.loc25_6.2: %J.type, %B.loc25_13.2: @F.%A.as_type.loc25_17.1 (%A.as_type)) { +// CHECK:STDOUT: generic fn @F(%A.loc25_6.2: %J.type, %B.loc25_13.2: @F.%A.binding.as_type (%A.binding.as_type)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -270,8 +270,8 @@ 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_6.1: %J.type = converted constants.%A.as_type, constants.%A [symbolic = %A.loc25_6.1 (constants.%A)] -// CHECK:STDOUT: %.loc27_6.2: %J.type = converted constants.%A.as_type, constants.%A [symbolic = %A.loc25_6.1 (constants.%A)] +// CHECK:STDOUT: %.loc27_6.1: %J.type = converted constants.%A.binding.as_type, constants.%A [symbolic = %A.loc25_6.1 (constants.%A)] +// CHECK:STDOUT: %.loc27_6.2: %J.type = converted constants.%A.binding.as_type, constants.%A [symbolic = %A.loc25_6.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: @@ -280,11 +280,11 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%A, constants.%B) { // CHECK:STDOUT: %A.loc25_6.1 => constants.%A -// CHECK:STDOUT: %A.as_type.loc25_17.1 => constants.%A.as_type +// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type // CHECK:STDOUT: %B.loc25_13.1 => constants.%B -// CHECK:STDOUT: %pattern_type.loc25_13 => constants.%pattern_type.8ba -// CHECK:STDOUT: %require_complete.loc25_29 => constants.%require_complete.8dd +// CHECK:STDOUT: %pattern_type.loc25_13 => constants.%pattern_type.a23 +// CHECK:STDOUT: %require_complete.loc25_29 => constants.%require_complete.bb1 // CHECK:STDOUT: %C.loc25_29.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc25_20 => constants.%pattern_type.f19 +// CHECK:STDOUT: %pattern_type.loc25_20 => constants.%pattern_type.e0c // 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 12a81eaaf10e4..62eb674b70b05 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 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %Eats.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.384: type = pattern_type %Eats.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.7fd: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.fae: type = pattern_type %T.binding.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.89b: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.de6: = require_complete_type %T.binding.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.8a6: 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: %U: %facet_type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3d0: type = pattern_type %facet_type [concrete] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.20f: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] +// CHECK:STDOUT: %pattern_type.4ae: type = pattern_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.c20: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %require_complete.787: = require_complete_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U, @Eats [symbolic] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.as_type, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.binding.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.384 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.7fd) = binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.7fd) = value_param_pattern %e.patt, call_param0 [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.fae) = binding_pattern e [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.fae) = value_param_pattern %e.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc6_22.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc6_22.1: type = splice_block %.loc6_22.2 [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc6_22.1: type = splice_block %.loc6_22.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc6_9.2 [symbolic = %T.loc6_9.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc6_22.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc6_22.2: type = converted %T.ref, %T.as_type.loc6_22.2 [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc6_22.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc6_22.1 (%T.as_type) = bind_name e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type) = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %U.patt: %pattern_type.3d0 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.20f) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.20f) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.4ae) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.4ae) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_17.2: %facet_type = bind_symbolic_name U, 0 [symbolic = %U.loc8_17.1 (constants.%U)] -// 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: %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: %U.ref: %facet_type = name_ref U, %U.loc8_17.2 [symbolic = %U.loc8_17.1 (constants.%U)] -// 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: %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: } -// CHECK:STDOUT: %a: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%U.binding.as_type (%U.binding.as_type) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -213,13 +213,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc6_9.2: %Eats.type) { // CHECK:STDOUT: %T.loc6_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc6_9.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc6_22.1: type = facet_access_type %T.loc6_9.1 [symbolic = %T.as_type.loc6_22.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_22.1 [symbolic = %pattern_type (constants.%pattern_type.7fd)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc6_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.fae)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_22.1 [symbolic = %require_complete (constants.%require_complete.89b)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.de6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc6_22.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -227,23 +227,23 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%U.loc8_17.2: %facet_type) { // CHECK:STDOUT: %U.loc8_17.1: %facet_type = bind_symbolic_name U, 0 [symbolic = %U.loc8_17.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc8_39.1: type = facet_access_type %U.loc8_17.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.20f)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc8_17.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.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc8_39.1 [symbolic = %require_complete (constants.%require_complete.c20)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.787)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U.loc8_17.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc8_50.3: %Eats.type = facet_value %U.as_type.loc8_39.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc8_50.3: %Eats.type = facet_value %U.binding.as_type, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc8_44.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc8_50.3) [symbolic = %Feed.specific_fn.loc8_44.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%U.binding.as_type (%U.binding.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.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.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %.loc8_50.1: %Eats.type = converted constants.%U.as_type, %Eats.facet.loc8_50.1 [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %Eats.facet.loc8_50.2: %Eats.type = facet_value constants.%U.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %.loc8_50.2: %Eats.type = converted constants.%U.as_type, %Eats.facet.loc8_50.2 [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] +// 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.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %.loc8_50.1: %Eats.type = converted constants.%U.binding.as_type, %Eats.facet.loc8_50.1 [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc8_50.2: %Eats.type = facet_value constants.%U.binding.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %.loc8_50.2: %Eats.type = converted constants.%U.binding.as_type, %Eats.facet.loc8_50.2 [symbolic = %Eats.facet.loc8_50.3 (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 @@ -252,23 +252,23 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T) { // CHECK:STDOUT: %T.loc6_9.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc6_22.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7fd +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%U) { // CHECK:STDOUT: %U.loc8_17.1 => constants.%U -// CHECK:STDOUT: %U.as_type.loc8_39.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.20f +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4ae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { // CHECK:STDOUT: %T.loc6_9.1 => constants.%Eats.facet -// CHECK:STDOUT: %T.as_type.loc6_22.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.20f +// CHECK:STDOUT: %T.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4ae // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.c20 +// CHECK:STDOUT: %require_complete => constants.%require_complete.787 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- bigger.carbon @@ -296,25 +296,25 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %facet_type.807: type = facet_type <@Eats & @Tame> [concrete] // CHECK:STDOUT: %V: %facet_type.807 = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %pattern_type.a92: type = pattern_type %facet_type.807 [concrete] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.256: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] +// CHECK:STDOUT: %pattern_type.113: type = pattern_type %V.binding.as_type [symbolic] // CHECK:STDOUT: %FeedTame.type: type = fn_type @FeedTame [concrete] // CHECK:STDOUT: %FeedTame: %FeedTame.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d3c: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %require_complete.599: = require_complete_type %V.binding.as_type [symbolic] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.6cd: = bound_method %Eats.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.075: type = facet_type <@Eats & @Animal> [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.db7: = bound_method %facet_type.075, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.57b: type = facet_type <@Eats & @Animal & @Tame> [concrete] // CHECK:STDOUT: %W: %facet_type.57b = bind_symbolic_name W, 0 [symbolic] // CHECK:STDOUT: %pattern_type.c41: type = pattern_type %facet_type.57b [concrete] -// CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic] -// CHECK:STDOUT: %pattern_type.c91: type = pattern_type %W.as_type [symbolic] +// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W [symbolic] +// CHECK:STDOUT: %pattern_type.f61: type = pattern_type %W.binding.as_type [symbolic] // CHECK:STDOUT: %HandleTameAnimal.type: type = fn_type @HandleTameAnimal [concrete] // CHECK:STDOUT: %HandleTameAnimal: %HandleTameAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.466: = require_complete_type %W.as_type [symbolic] +// CHECK:STDOUT: %require_complete.a9a: = require_complete_type %W.binding.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.807 = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.807 = facet_value %W.binding.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: @@ -344,8 +344,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.a92 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.256) = binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.256) = value_param_pattern %v.patt, call_param0 [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.113) = binding_pattern v [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.113) = value_param_pattern %v.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [concrete = constants.%facet_type.807] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -358,18 +358,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.807] // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc7_13.2: %facet_type.807 = bind_symbolic_name V, 0 [symbolic = %V.loc7_13.1 (constants.%V)] -// CHECK:STDOUT: %v.param: @FeedTame.%V.as_type.loc7_33.1 (%V.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_33.1: type = splice_block %.loc7_33.2 [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] { +// CHECK:STDOUT: %v.param: @FeedTame.%V.binding.as_type (%V.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_33.1: type = splice_block %.loc7_33.2 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] { // CHECK:STDOUT: %V.ref: %facet_type.807 = name_ref V, %V.loc7_13.2 [symbolic = %V.loc7_13.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc7_33.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc7_33.2: type = converted %V.ref, %V.as_type.loc7_33.2 [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.ref [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %.loc7_33.2: type = converted %V.ref, %V.as_type [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @FeedTame.%V.as_type.loc7_33.1 (%V.as_type) = bind_name v, %v.param +// CHECK:STDOUT: %v: @FeedTame.%V.binding.as_type (%V.binding.as_type) = bind_name v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal.decl: %HandleTameAnimal.type = fn_decl @HandleTameAnimal [concrete = constants.%HandleTameAnimal] { // CHECK:STDOUT: %W.patt: %pattern_type.c41 = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.c91) = binding_pattern w [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.c91) = value_param_pattern %w.patt, call_param0 [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.f61) = binding_pattern w [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.f61) = value_param_pattern %w.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.3 [concrete = constants.%facet_type.57b] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -388,13 +388,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.57b] // CHECK:STDOUT: } // CHECK:STDOUT: %W.loc9_21.2: %facet_type.57b = bind_symbolic_name W, 0 [symbolic = %W.loc9_21.1 (constants.%W)] -// 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.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.ref: %facet_type.57b = name_ref W, %W.loc9_21.2 [symbolic = %W.loc9_21.1 (constants.%W)] -// 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: %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: } -// CHECK:STDOUT: %w: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = bind_name w, %w.param +// CHECK:STDOUT: %w: @HandleTameAnimal.%W.binding.as_type (%W.binding.as_type) = bind_name w, %w.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -424,13 +424,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @FeedTame(%V.loc7_13.2: %facet_type.807) { // CHECK:STDOUT: %V.loc7_13.1: %facet_type.807 = bind_symbolic_name V, 0 [symbolic = %V.loc7_13.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc7_33.1: type = facet_access_type %V.loc7_13.1 [symbolic = %V.as_type.loc7_33.1 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc7_33.1 [symbolic = %pattern_type (constants.%pattern_type.256)] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc7_13.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.113)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc7_33.1 [symbolic = %require_complete (constants.%require_complete.d3c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.binding.as_type [symbolic = %require_complete (constants.%require_complete.599)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%v.param: @FeedTame.%V.as_type.loc7_33.1 (%V.as_type)) { +// CHECK:STDOUT: fn(%v.param: @FeedTame.%V.binding.as_type (%V.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -438,24 +438,24 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleTameAnimal(%W.loc9_21.2: %facet_type.57b) { // CHECK:STDOUT: %W.loc9_21.1: %facet_type.57b = bind_symbolic_name W, 0 [symbolic = %W.loc9_21.1 (constants.%W)] -// CHECK:STDOUT: %W.as_type.loc9_50.1: type = facet_access_type %W.loc9_21.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.c91)] +// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W.loc9_21.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.f61)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc9_50.1 [symbolic = %require_complete (constants.%require_complete.466)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.binding.as_type [symbolic = %require_complete (constants.%require_complete.a9a)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc9_21.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc9_21.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc10_13.3: %facet_type.807 = facet_value %W.as_type.loc9_50.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc10_13.3: %facet_type.807 = facet_value %W.binding.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc10_3.2: = specific_function constants.%FeedTame, @FeedTame(%facet_value.loc10_13.3) [symbolic = %FeedTame.specific_fn.loc10_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type)) { +// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal.%W.binding.as_type (%W.binding.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.as_type.loc9_50.1 (%W.as_type) = name_ref w, %w -// CHECK:STDOUT: %facet_value.loc10_13.1: %facet_type.807 = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] -// CHECK:STDOUT: %.loc10_13.1: %facet_type.807 = converted constants.%W.as_type, %facet_value.loc10_13.1 [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] -// CHECK:STDOUT: %facet_value.loc10_13.2: %facet_type.807 = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] -// CHECK:STDOUT: %.loc10_13.2: %facet_type.807 = converted constants.%W.as_type, %facet_value.loc10_13.2 [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] +// 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.807 = facet_value constants.%W.binding.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %.loc10_13.1: %facet_type.807 = converted constants.%W.binding.as_type, %facet_value.loc10_13.1 [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc10_13.2: %facet_type.807 = facet_value constants.%W.binding.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %.loc10_13.2: %facet_type.807 = converted constants.%W.binding.as_type, %facet_value.loc10_13.2 [symbolic = %facet_value.loc10_13.3 (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 @@ -464,23 +464,23 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%V) { // CHECK:STDOUT: %V.loc7_13.1 => constants.%V -// CHECK:STDOUT: %V.as_type.loc7_33.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.256 +// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal(constants.%W) { // CHECK:STDOUT: %W.loc9_21.1 => constants.%W -// CHECK:STDOUT: %W.as_type.loc9_50.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c91 +// CHECK:STDOUT: %W.binding.as_type => constants.%W.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f61 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%facet_value) { // CHECK:STDOUT: %V.loc7_13.1 => constants.%facet_value -// CHECK:STDOUT: %V.as_type.loc7_33.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c91 +// CHECK:STDOUT: %V.binding.as_type => constants.%W.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f61 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.466 +// CHECK:STDOUT: %require_complete => constants.%require_complete.a9a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- with_blanket.carbon @@ -496,8 +496,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %A: %Animal.type = bind_symbolic_name A, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3c3: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.6dc: = impl_witness file.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] +// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.c78: = impl_witness file.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A) [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] @@ -512,26 +512,26 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %facet_type.807: type = facet_type <@Eats & @Tame> [concrete] // CHECK:STDOUT: %V: %facet_type.807 = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %pattern_type.a92: type = pattern_type %facet_type.807 [concrete] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.256: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] +// CHECK:STDOUT: %pattern_type.113: type = pattern_type %V.binding.as_type [symbolic] // CHECK:STDOUT: %FeedTame2.type: type = fn_type @FeedTame2 [concrete] // CHECK:STDOUT: %FeedTame2: %FeedTame2.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d3c: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %require_complete.599: = require_complete_type %V.binding.as_type [symbolic] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.ec1: = bound_method %Animal.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.709: type = facet_type <@Animal & @Tame> [concrete] // CHECK:STDOUT: %W: %facet_type.709 = bind_symbolic_name W, 0 [symbolic] // CHECK:STDOUT: %pattern_type.b9c: type = pattern_type %facet_type.709 [concrete] -// CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic] -// CHECK:STDOUT: %pattern_type.5ac: type = pattern_type %W.as_type [symbolic] +// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W [symbolic] +// CHECK:STDOUT: %pattern_type.072: type = pattern_type %W.binding.as_type [symbolic] // CHECK:STDOUT: %HandleTameAnimal2.type: type = fn_type @HandleTameAnimal2 [concrete] // CHECK:STDOUT: %HandleTameAnimal2: %HandleTameAnimal2.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b2d: = require_complete_type %W.as_type [symbolic] +// CHECK:STDOUT: %require_complete.ea5: = require_complete_type %W.binding.as_type [symbolic] // CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W, @Animal [symbolic] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type, (%Animal.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.7f1: = impl_witness file.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%Animal.facet) [symbolic] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.binding.as_type, (%Animal.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.cd9: = impl_witness file.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%Animal.facet) [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.807 = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.807 = facet_value %W.binding.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: @@ -559,12 +559,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.as_type.as.Eats.impl [concrete] { +// CHECK:STDOUT: impl_decl @A.binding.as_type.as.Eats.impl [concrete] { // CHECK:STDOUT: %A.patt: %pattern_type.3c3 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc7_14.1 [symbolic = %A.loc7_14.2 (constants.%A)] -// 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: %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: %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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -572,12 +572,12 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %A.loc7_14.1: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc7_14.2 (constants.%A)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = @A.as_type.as.Eats.impl.%Eats.impl_witness (constants.%Eats.impl_witness.6dc)] +// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.binding.as_type.as.Eats.impl [concrete] +// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(constants.%A) [symbolic = @A.binding.as_type.as.Eats.impl.%Eats.impl_witness (constants.%Eats.impl_witness.c78)] // CHECK:STDOUT: %FeedTame2.decl: %FeedTame2.type = fn_decl @FeedTame2 [concrete = constants.%FeedTame2] { // CHECK:STDOUT: %V.patt: %pattern_type.a92 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.256) = binding_pattern v [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.256) = value_param_pattern %v.patt, call_param0 [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.113) = binding_pattern v [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.113) = value_param_pattern %v.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.3 [concrete = constants.%facet_type.807] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -590,18 +590,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.807] // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc9_14.2: %facet_type.807 = bind_symbolic_name V, 0 [symbolic = %V.loc9_14.1 (constants.%V)] -// CHECK:STDOUT: %v.param: @FeedTame2.%V.as_type.loc9_34.1 (%V.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_34.1: type = splice_block %.loc9_34.2 [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] { +// CHECK:STDOUT: %v.param: @FeedTame2.%V.binding.as_type (%V.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_34.1: type = splice_block %.loc9_34.2 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] { // CHECK:STDOUT: %V.ref: %facet_type.807 = name_ref V, %V.loc9_14.2 [symbolic = %V.loc9_14.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc9_34.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc9_34.2: type = converted %V.ref, %V.as_type.loc9_34.2 [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.ref [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %.loc9_34.2: type = converted %V.ref, %V.as_type [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @FeedTame2.%V.as_type.loc9_34.1 (%V.as_type) = bind_name v, %v.param +// CHECK:STDOUT: %v: @FeedTame2.%V.binding.as_type (%V.binding.as_type) = bind_name v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal2.decl: %HandleTameAnimal2.type = fn_decl @HandleTameAnimal2 [concrete = constants.%HandleTameAnimal2] { // CHECK:STDOUT: %W.patt: %pattern_type.b9c = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.5ac) = binding_pattern w [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.5ac) = value_param_pattern %w.patt, call_param0 [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.072) = binding_pattern w [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.072) = value_param_pattern %w.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_33.1: type = splice_block %.loc11_33.3 [concrete = constants.%facet_type.709] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -614,13 +614,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.709] // CHECK:STDOUT: } // CHECK:STDOUT: %W.loc11_22.2: %facet_type.709 = bind_symbolic_name W, 0 [symbolic = %W.loc11_22.1 (constants.%W)] -// 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.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.ref: %facet_type.709 = name_ref W, %W.loc11_22.2 [symbolic = %W.loc11_22.1 (constants.%W)] -// 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: %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: } -// CHECK:STDOUT: %w: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = bind_name w, %w.param +// CHECK:STDOUT: %w: @HandleTameAnimal2.%W.binding.as_type (%W.binding.as_type) = bind_name w, %w.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -648,10 +648,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @A.as_type.as.Eats.impl(%A.loc7_14.1: %Animal.type) { +// CHECK:STDOUT: generic impl @A.binding.as_type.as.Eats.impl(%A.loc7_14.1: %Animal.type) { // CHECK:STDOUT: %A.loc7_14.2: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc7_14.2 (constants.%A)] -// CHECK:STDOUT: %A.as_type.loc7_26.2: type = facet_access_type %A.loc7_14.2 [symbolic = %A.as_type.loc7_26.2 (constants.%A.as_type)] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness file.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc7_14.2) [symbolic = %Eats.impl_witness (constants.%Eats.impl_witness.6dc)] +// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc7_14.2 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] +// CHECK:STDOUT: %Eats.impl_witness: = impl_witness file.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A.loc7_14.2) [symbolic = %Eats.impl_witness (constants.%Eats.impl_witness.c78)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -663,13 +663,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @FeedTame2(%V.loc9_14.2: %facet_type.807) { // CHECK:STDOUT: %V.loc9_14.1: %facet_type.807 = bind_symbolic_name V, 0 [symbolic = %V.loc9_14.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc9_34.1: type = facet_access_type %V.loc9_14.1 [symbolic = %V.as_type.loc9_34.1 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc9_34.1 [symbolic = %pattern_type (constants.%pattern_type.256)] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc9_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.113)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc9_34.1 [symbolic = %require_complete (constants.%require_complete.d3c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.binding.as_type [symbolic = %require_complete (constants.%require_complete.599)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%v.param: @FeedTame2.%V.as_type.loc9_34.1 (%V.as_type)) { +// CHECK:STDOUT: fn(%v.param: @FeedTame2.%V.binding.as_type (%V.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -677,71 +677,71 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleTameAnimal2(%W.loc11_22.2: %facet_type.709) { // CHECK:STDOUT: %W.loc11_22.1: %facet_type.709 = bind_symbolic_name W, 0 [symbolic = %W.loc11_22.1 (constants.%W)] -// CHECK:STDOUT: %W.as_type.loc11_44.1: type = facet_access_type %W.loc11_22.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.5ac)] +// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W.loc11_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.072)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc11_44.1 [symbolic = %require_complete (constants.%require_complete.b2d)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.binding.as_type [symbolic = %require_complete (constants.%require_complete.ea5)] // CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.1, @Animal [symbolic = %Animal.lookup_impl_witness (constants.%Animal.lookup_impl_witness)] -// CHECK:STDOUT: %Animal.facet.loc12_14.3: %Animal.type = facet_value %W.as_type.loc11_44.1, (%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] +// CHECK:STDOUT: %Animal.facet.loc12_14.3: %Animal.type = facet_value %W.binding.as_type, (%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc11_22.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc12_14.3: %facet_type.807 = facet_value %W.as_type.loc11_44.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc12_14.3: %facet_type.807 = facet_value %W.binding.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame2.specific_fn.loc12_3.2: = specific_function constants.%FeedTame2, @FeedTame2(%facet_value.loc12_14.3) [symbolic = %FeedTame2.specific_fn.loc12_3.2 (constants.%FeedTame2.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type)) { +// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal2.%W.binding.as_type (%W.binding.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.as_type.loc11_44.1 (%W.as_type) = name_ref w, %w -// CHECK:STDOUT: %W.as_type.loc12_14.1: type = facet_access_type constants.%W [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] -// CHECK:STDOUT: %Animal.facet.loc12_14.1: %Animal.type = facet_value %W.as_type.loc12_14.1, (constants.%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] +// CHECK:STDOUT: %w.ref: @HandleTameAnimal2.%W.binding.as_type (%W.binding.as_type) = name_ref w, %w +// CHECK:STDOUT: %as_type.loc12_14.1: type = facet_access_type constants.%W [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] +// CHECK:STDOUT: %Animal.facet.loc12_14.1: %Animal.type = facet_value %as_type.loc12_14.1, (constants.%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %.loc12_14.1: %Animal.type = converted constants.%W, %Animal.facet.loc12_14.1 [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] -// CHECK:STDOUT: %facet_value.loc12_14.1: %facet_type.807 = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] -// CHECK:STDOUT: %.loc12_14.2: %facet_type.807 = converted constants.%W.as_type, %facet_value.loc12_14.1 [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] -// CHECK:STDOUT: %W.as_type.loc12_14.2: type = facet_access_type constants.%W [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] -// CHECK:STDOUT: %Animal.facet.loc12_14.2: %Animal.type = facet_value %W.as_type.loc12_14.2, (constants.%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] +// CHECK:STDOUT: %facet_value.loc12_14.1: %facet_type.807 = facet_value constants.%W.binding.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] +// CHECK:STDOUT: %.loc12_14.2: %facet_type.807 = converted constants.%W.binding.as_type, %facet_value.loc12_14.1 [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] +// CHECK:STDOUT: %as_type.loc12_14.2: type = facet_access_type constants.%W [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] +// CHECK:STDOUT: %Animal.facet.loc12_14.2: %Animal.type = facet_value %as_type.loc12_14.2, (constants.%Animal.lookup_impl_witness) [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %.loc12_14.3: %Animal.type = converted constants.%W, %Animal.facet.loc12_14.2 [symbolic = %Animal.facet.loc12_14.3 (constants.%Animal.facet)] -// CHECK:STDOUT: %facet_value.loc12_14.2: %facet_type.807 = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] -// CHECK:STDOUT: %.loc12_14.4: %facet_type.807 = converted constants.%W.as_type, %facet_value.loc12_14.2 [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc12_14.2: %facet_type.807 = facet_value constants.%W.binding.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.3 (constants.%facet_value)] +// CHECK:STDOUT: %.loc12_14.4: %facet_type.807 = converted constants.%W.binding.as_type, %facet_value.loc12_14.2 [symbolic = %facet_value.loc12_14.3 (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 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%A) { +// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%A) { // CHECK:STDOUT: %A.loc7_14.2 => constants.%A -// CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%A.as_type -// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.6dc +// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type +// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.c78 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame2(constants.%V) { // CHECK:STDOUT: %V.loc9_14.1 => constants.%V -// CHECK:STDOUT: %V.as_type.loc9_34.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.256 +// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal2(constants.%W) { // CHECK:STDOUT: %W.loc11_22.1 => constants.%W -// CHECK:STDOUT: %W.as_type.loc11_44.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5ac +// CHECK:STDOUT: %W.binding.as_type => constants.%W.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.072 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%Animal.facet) { +// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%Animal.facet) { // CHECK:STDOUT: %A.loc7_14.2 => constants.%Animal.facet -// CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%W.as_type -// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.7f1 +// CHECK:STDOUT: %A.binding.as_type => constants.%W.binding.as_type +// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.cd9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame2(constants.%facet_value) { // CHECK:STDOUT: %V.loc9_14.1 => constants.%facet_value -// CHECK:STDOUT: %V.as_type.loc9_34.1 => constants.%W.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5ac +// CHECK:STDOUT: %V.binding.as_type => constants.%W.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.072 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.b2d +// CHECK:STDOUT: %require_complete => constants.%require_complete.ea5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- equivalent.carbon @@ -753,20 +753,20 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.659: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %A.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3d9: type = pattern_type %A.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.f23f71.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.c8b0d2.1: type = pattern_type %T.binding.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.35e863.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.29533e.1: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %.Self.56d: %A.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.56d [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.56d [symbolic_self] // CHECK:STDOUT: %U: %A.type = bind_symbolic_name U, 0 [symbolic] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.f23f71.2: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] +// CHECK:STDOUT: %pattern_type.c8b0d2.2: type = pattern_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %WithExtraWhere.type: type = fn_type @WithExtraWhere [concrete] // CHECK:STDOUT: %WithExtraWhere: %WithExtraWhere.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.35e863.2: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %require_complete.29533e.2: = require_complete_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %TakesA.specific_fn: = specific_function %TakesA, @TakesA(%U) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -788,47 +788,47 @@ 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.3d9 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.f23f71.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.f23f71.1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.c8b0d2.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.c8b0d2.1) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_15: type = splice_block %A.ref [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_11.2: %A.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_11.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @TakesA.%T.as_type.loc7_21.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %x.param: @TakesA.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %A.type = name_ref T, %T.loc7_11.2 [symbolic = %T.loc7_11.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc7_21.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc7_21.2: type = converted %T.ref, %T.as_type.loc7_21.2 [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] +// 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.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TakesA.%T.as_type.loc7_21.1 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %x: @TakesA.%T.binding.as_type (%T.binding.as_type) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %WithExtraWhere.decl: %WithExtraWhere.type = fn_decl @WithExtraWhere [concrete = constants.%WithExtraWhere] { // CHECK:STDOUT: %U.patt: %pattern_type.3d9 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.f23f71.2) = binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.f23f71.2) = value_param_pattern %y.patt, call_param0 [concrete] +// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.c8b0d2.2) = binding_pattern y [concrete] +// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.c8b0d2.2) = value_param_pattern %y.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_25.1: type = splice_block %.loc9_25.2 [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %.Self.2: %A.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.56d] // CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.56d] -// 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: %.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: %.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, type // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc9_19.2: %A.type = bind_symbolic_name U, 0 [symbolic = %U.loc9_19.1 (constants.%U)] -// 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: %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: %U.ref: %A.type = name_ref U, %U.loc9_19.2 [symbolic = %U.loc9_19.1 (constants.%U)] -// 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: %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: } -// CHECK:STDOUT: %y: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %y: @WithExtraWhere.%U.binding.as_type (%U.binding.as_type) = bind_name y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -842,13 +842,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @TakesA(%T.loc7_11.2: %A.type) { // CHECK:STDOUT: %T.loc7_11.1: %A.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_11.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc7_21.1: type = facet_access_type %T.loc7_11.1 [symbolic = %T.as_type.loc7_21.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_21.1 [symbolic = %pattern_type (constants.%pattern_type.f23f71.1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc7_11.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.c8b0d2.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_21.1 [symbolic = %require_complete (constants.%require_complete.35e863.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.29533e.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TakesA.%T.as_type.loc7_21.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @TakesA.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -856,19 +856,19 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @WithExtraWhere(%U.loc9_19.2: %A.type) { // CHECK:STDOUT: %U.loc9_19.1: %A.type = bind_symbolic_name U, 0 [symbolic = %U.loc9_19.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc9_52.1: type = facet_access_type %U.loc9_19.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.f23f71.2)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc9_19.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.c8b0d2.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_52.1 [symbolic = %require_complete (constants.%require_complete.35e863.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.29533e.2)] // CHECK:STDOUT: %TakesA.specific_fn.loc10_3.2: = specific_function constants.%TakesA, @TakesA(%U.loc9_19.1) [symbolic = %TakesA.specific_fn.loc10_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type)) { +// CHECK:STDOUT: fn(%y.param: @WithExtraWhere.%U.binding.as_type (%U.binding.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.as_type.loc9_52.1 (%U.as_type) = name_ref y, %y -// CHECK:STDOUT: %.loc10_11.1: %A.type = converted constants.%U.as_type, constants.%U [symbolic = %U.loc9_19.1 (constants.%U)] -// CHECK:STDOUT: %.loc10_11.2: %A.type = converted constants.%U.as_type, constants.%U [symbolic = %U.loc9_19.1 (constants.%U)] +// CHECK:STDOUT: %y.ref: @WithExtraWhere.%U.binding.as_type (%U.binding.as_type) = name_ref y, %y +// CHECK:STDOUT: %.loc10_11.1: %A.type = converted constants.%U.binding.as_type, constants.%U [symbolic = %U.loc9_19.1 (constants.%U)] +// CHECK:STDOUT: %.loc10_11.2: %A.type = converted constants.%U.binding.as_type, constants.%U [symbolic = %U.loc9_19.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 @@ -877,23 +877,23 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesA(constants.%T) { // CHECK:STDOUT: %T.loc7_11.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc7_21.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f23f71.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8b0d2.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithExtraWhere(constants.%U) { // CHECK:STDOUT: %U.loc9_19.1 => constants.%U -// CHECK:STDOUT: %U.as_type.loc9_52.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f23f71.2 +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8b0d2.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesA(constants.%U) { // CHECK:STDOUT: %T.loc7_11.1 => constants.%U -// CHECK:STDOUT: %T.as_type.loc7_21.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f23f71.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8b0d2.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.35e863.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.29533e.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- no_interfaces_success.carbon @@ -911,17 +911,17 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.644: type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %U: %type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.e25: type = pattern_type %type [concrete] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.9b8: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] +// CHECK:STDOUT: %pattern_type.bf1: type = pattern_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %CallsWithExtraWhere.type: type = fn_type @CallsWithExtraWhere [concrete] // CHECK:STDOUT: %CallsWithExtraWhere: %CallsWithExtraWhere.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.e59: = require_complete_type %U.as_type [symbolic] -// CHECK:STDOUT: %TakesTypeDeduced.specific_fn: = specific_function %TakesTypeDeduced, @TakesTypeDeduced(%U.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.4cc: = require_complete_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %TakesTypeDeduced.specific_fn: = specific_function %TakesTypeDeduced, @TakesTypeDeduced(%U.binding.as_type) [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.as_type) [symbolic] +// CHECK:STDOUT: %TakesTypeExplicit.specific_fn: = specific_function %TakesTypeExplicit, @TakesTypeExplicit(%U.binding.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -953,8 +953,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.e25 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.9b8) = binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.9b8) = value_param_pattern %y.patt, call_param0 [concrete] +// CHECK:STDOUT: %y.patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.bf1) = binding_pattern y [concrete] +// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.bf1) = value_param_pattern %y.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_33.1: type = splice_block %.loc4_33.2 [concrete = constants.%type] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] @@ -966,13 +966,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc4_24.2: %type = bind_symbolic_name U, 0 [symbolic = %U.loc4_24.1 (constants.%U)] -// 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: %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: %U.ref: %type = name_ref U, %U.loc4_24.2 [symbolic = %U.loc4_24.1 (constants.%U)] -// 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: %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: } -// CHECK:STDOUT: %y: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %y: @CallsWithExtraWhere.%U.binding.as_type (%U.binding.as_type) = bind_name 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] @@ -1011,18 +1011,18 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @CallsWithExtraWhere(%U.loc4_24.2: %type) { // CHECK:STDOUT: %U.loc4_24.1: %type = bind_symbolic_name U, 0 [symbolic = %U.loc4_24.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc4_60.1: type = facet_access_type %U.loc4_24.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.9b8)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc4_24.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.bf1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc4_60.1 [symbolic = %require_complete (constants.%require_complete.e59)] -// 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: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.4cc)] +// 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: -// CHECK:STDOUT: fn(%y.param: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type)) { +// CHECK:STDOUT: fn(%y.param: @CallsWithExtraWhere.%U.binding.as_type (%U.binding.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.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: %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: %TakesTypeDeduced.call: init %empty_tuple.type = call %TakesTypeDeduced.specific_fn.loc5_3.1(%y.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1043,16 +1043,16 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %U.loc9_32.1: %type = bind_symbolic_name U, 0 [symbolic = %U.loc9_32.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %U.as_type.loc10_22.2: type = facet_access_type %U.loc9_32.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: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc9_32.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: // 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_32.2 [symbolic = %U.loc9_32.1 (constants.%U)] -// 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: %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: %TakesTypeExplicit.call: init %empty_tuple.type = call %TakesTypeExplicit.specific_fn.loc10_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1065,16 +1065,16 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithExtraWhere(constants.%U) { // CHECK:STDOUT: %U.loc4_24.1 => constants.%U -// CHECK:STDOUT: %U.as_type.loc4_60.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b8 +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bf1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TakesTypeDeduced(constants.%U.as_type) { -// CHECK:STDOUT: %T.loc3_21.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b8 +// CHECK:STDOUT: specific @TakesTypeDeduced(constants.%U.binding.as_type) { +// CHECK:STDOUT: %T.loc3_21.1 => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bf1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.e59 +// CHECK:STDOUT: %require_complete => constants.%require_complete.4cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesTypeExplicit(constants.%T) { @@ -1085,8 +1085,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %U.loc9_32.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TakesTypeExplicit(constants.%U.as_type) { -// CHECK:STDOUT: %T.loc8_22.1 => constants.%U.as_type +// CHECK:STDOUT: specific @TakesTypeExplicit(constants.%U.binding.as_type) { +// CHECK:STDOUT: %T.loc8_22.1 => constants.%U.binding.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -1099,12 +1099,12 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.644: type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.e25: type = pattern_type %type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.9b8: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.bf1: type = pattern_type %T.binding.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.e59: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.4cc: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %U [symbolic] @@ -1138,8 +1138,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.e25 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.9b8) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.9b8) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.bf1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.bf1) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_36.1: type = splice_block %.loc3_36.2 [concrete = constants.%type] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] @@ -1151,13 +1151,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc3_27.2: %type = bind_symbolic_name T, 0 [symbolic = %T.loc3_27.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_63.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc3_63.1: type = splice_block %.loc3_63.2 [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %x.param: @TakesExtraWhereDeduced.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc3_63.1: type = splice_block %.loc3_63.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %type = name_ref T, %T.loc3_27.2 [symbolic = %T.loc3_27.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc3_63.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc3_63.2: type = converted %T.ref, %T.as_type.loc3_63.2 [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc3_63.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TakesExtraWhereDeduced.%T.as_type.loc3_63.1 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %x: @TakesExtraWhereDeduced.%T.binding.as_type (%T.binding.as_type) = bind_name 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] @@ -1194,13 +1194,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @TakesExtraWhereDeduced(%T.loc3_27.2: %type) { // CHECK:STDOUT: %T.loc3_27.1: %type = bind_symbolic_name T, 0 [symbolic = %T.loc3_27.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc3_63.1: type = facet_access_type %T.loc3_27.1 [symbolic = %T.as_type.loc3_63.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc3_63.1 [symbolic = %pattern_type (constants.%pattern_type.9b8)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc3_27.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.bf1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc3_63.1 [symbolic = %require_complete (constants.%require_complete.e59)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.4cc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_63.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @TakesExtraWhereDeduced.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1261,8 +1261,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereDeduced(constants.%T) { // CHECK:STDOUT: %T.loc3_27.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc3_63.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b8 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bf1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithType(constants.%U) { @@ -1272,7 +1272,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereDeduced(constants.%facet_value) { // CHECK:STDOUT: %T.loc3_27.1 => constants.%facet_value -// CHECK:STDOUT: %T.as_type.loc3_63.1 => constants.%U +// CHECK:STDOUT: %T.binding.as_type => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // 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 a1cdd12bc7ce2..731a020b9da74 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,25 +32,25 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %A: %Animal.type = bind_symbolic_name A, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3c3: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.6dc3e5.1: = impl_witness file.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] +// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.c78b2c.1: = impl_witness file.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A) [symbolic] // CHECK:STDOUT: %T.9e6: %Eats.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.384: type = pattern_type %Eats.type [concrete] -// CHECK:STDOUT: %T.as_type.918: type = facet_access_type %T.9e6 [symbolic] -// CHECK:STDOUT: %pattern_type.7fd: type = pattern_type %T.as_type.918 [symbolic] +// CHECK:STDOUT: %T.binding.as_type.4fe: type = symbolic_binding_type T, 0, %T.9e6 [symbolic] +// CHECK:STDOUT: %pattern_type.fae: type = pattern_type %T.binding.as_type.4fe [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.89b: = require_complete_type %T.as_type.918 [symbolic] +// CHECK:STDOUT: %require_complete.de6: = require_complete_type %T.binding.as_type.4fe [symbolic] // CHECK:STDOUT: %T.611: %Animal.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %T.as_type.855: type = facet_access_type %T.611 [symbolic] -// CHECK:STDOUT: %pattern_type.29d: type = pattern_type %T.as_type.855 [symbolic] +// CHECK:STDOUT: %T.binding.as_type.5cd: type = symbolic_binding_type T, 0, %T.611 [symbolic] +// CHECK:STDOUT: %pattern_type.a4a: type = pattern_type %T.binding.as_type.5cd [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.210: = require_complete_type %T.as_type.855 [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.6dc3e5.2: = impl_witness file.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%T.611) [symbolic] +// CHECK:STDOUT: %require_complete.892: = require_complete_type %T.binding.as_type.5cd [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.c78b2c.2: = impl_witness file.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%T.611) [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.611, @Eats [symbolic] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %T.as_type.855, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %T.binding.as_type.5cd, (%Eats.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -72,12 +72,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.as_type.as.Eats.impl [concrete] { +// CHECK:STDOUT: impl_decl @A.binding.as_type.as.Eats.impl [concrete] { // CHECK:STDOUT: %A.patt: %pattern_type.3c3 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc18_14.1 [symbolic = %A.loc18_14.2 (constants.%A)] -// 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: %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: %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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -85,43 +85,43 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: %A.loc18_14.1: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc18_14.2 (constants.%A)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = @A.as_type.as.Eats.impl.%Eats.impl_witness (constants.%Eats.impl_witness.6dc3e5.1)] +// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.binding.as_type.as.Eats.impl [concrete] +// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(constants.%A) [symbolic = @A.binding.as_type.as.Eats.impl.%Eats.impl_witness (constants.%Eats.impl_witness.c78b2c.1)] // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %T.patt: %pattern_type.384 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.7fd) = binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.7fd) = value_param_pattern %e.patt, call_param0 [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.fae) = binding_pattern e [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.fae) = value_param_pattern %e.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc20_9.1 (constants.%T.9e6)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc20_22.1 (%T.as_type.918) = value_param call_param0 -// CHECK:STDOUT: %.loc20_22.1: type = splice_block %.loc20_22.2 [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.918)] { +// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type.4fe) = value_param call_param0 +// CHECK:STDOUT: %.loc20_22.1: type = splice_block %.loc20_22.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] { // CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc20_9.2 [symbolic = %T.loc20_9.1 (constants.%T.9e6)] -// CHECK:STDOUT: %T.as_type.loc20_22.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.918)] -// CHECK:STDOUT: %.loc20_22.2: type = converted %T.ref, %T.as_type.loc20_22.2 [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.918)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] +// CHECK:STDOUT: %.loc20_22.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc20_22.1 (%T.as_type.918) = bind_name e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type.4fe) = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.3c3 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.29d) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.29d) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.a4a) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.a4a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc22_17.1 (constants.%T.611)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.855) = 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.855)] { +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd) = 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.5cd)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc22_17.2 [symbolic = %T.loc22_17.1 (constants.%T.611)] -// 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.855)] -// 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.855)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] +// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.855) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -141,10 +141,10 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @A.as_type.as.Eats.impl(%A.loc18_14.1: %Animal.type) { +// CHECK:STDOUT: generic impl @A.binding.as_type.as.Eats.impl(%A.loc18_14.1: %Animal.type) { // CHECK:STDOUT: %A.loc18_14.2: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc18_14.2 (constants.%A)] -// CHECK:STDOUT: %A.as_type.loc18_26.2: type = facet_access_type %A.loc18_14.2 [symbolic = %A.as_type.loc18_26.2 (constants.%A.as_type)] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness file.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc18_14.2) [symbolic = %Eats.impl_witness (constants.%Eats.impl_witness.6dc3e5.1)] +// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc18_14.2 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] +// CHECK:STDOUT: %Eats.impl_witness: = impl_witness file.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A.loc18_14.2) [symbolic = %Eats.impl_witness (constants.%Eats.impl_witness.c78b2c.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -156,13 +156,13 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc20_9.2: %Eats.type) { // CHECK:STDOUT: %T.loc20_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc20_9.1 (constants.%T.9e6)] -// CHECK:STDOUT: %T.as_type.loc20_22.1: type = facet_access_type %T.loc20_9.1 [symbolic = %T.as_type.loc20_22.1 (constants.%T.as_type.918)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc20_22.1 [symbolic = %pattern_type (constants.%pattern_type.7fd)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc20_9.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fae)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc20_22.1 [symbolic = %require_complete (constants.%require_complete.89b)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.de6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc20_22.1 (%T.as_type.918)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type.4fe)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -170,61 +170,61 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc22_17.2: %Animal.type) { // CHECK:STDOUT: %T.loc22_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc22_17.1 (constants.%T.611)] -// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_17.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.855)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.29d)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc22_17.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.a4a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.210)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.892)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc22_17.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc22_43.3: %Eats.type = facet_value %T.as_type.loc22_32.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc22_43.3: %Eats.type = facet_value %T.binding.as_type, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc22_37.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc22_43.3) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.855)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.855) = name_ref a, %a -// CHECK:STDOUT: %Eats.facet.loc22_43.1: %Eats.type = facet_value constants.%T.as_type.855, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %.loc22_43.1: %Eats.type = converted constants.%T.as_type.855, %Eats.facet.loc22_43.1 [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %Eats.facet.loc22_43.2: %Eats.type = facet_value constants.%T.as_type.855, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %.loc22_43.2: %Eats.type = converted constants.%T.as_type.855, %Eats.facet.loc22_43.2 [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd) = name_ref a, %a +// CHECK:STDOUT: %Eats.facet.loc22_43.1: %Eats.type = facet_value constants.%T.binding.as_type.5cd, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %.loc22_43.1: %Eats.type = converted constants.%T.binding.as_type.5cd, %Eats.facet.loc22_43.1 [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc22_43.2: %Eats.type = facet_value constants.%T.binding.as_type.5cd, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %.loc22_43.2: %Eats.type = converted constants.%T.binding.as_type.5cd, %Eats.facet.loc22_43.2 [symbolic = %Eats.facet.loc22_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc22_37.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [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: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%A) { +// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%A) { // CHECK:STDOUT: %A.loc18_14.2 => constants.%A -// CHECK:STDOUT: %A.as_type.loc18_26.2 => constants.%A.as_type -// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.6dc3e5.1 +// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type +// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.c78b2c.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T.9e6) { // CHECK:STDOUT: %T.loc20_9.1 => constants.%T.9e6 -// CHECK:STDOUT: %T.as_type.loc20_22.1 => constants.%T.as_type.918 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7fd +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.4fe +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.611) { // CHECK:STDOUT: %T.loc22_17.1 => constants.%T.611 -// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.855 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29d +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.5cd +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%T.611) { +// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%T.611) { // CHECK:STDOUT: %A.loc18_14.2 => constants.%T.611 -// CHECK:STDOUT: %A.as_type.loc18_26.2 => constants.%T.as_type.855 -// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.6dc3e5.2 +// CHECK:STDOUT: %A.binding.as_type => constants.%T.binding.as_type.5cd +// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.c78b2c.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { // CHECK:STDOUT: %T.loc20_9.1 => constants.%Eats.facet -// CHECK:STDOUT: %T.as_type.loc20_22.1 => constants.%T.as_type.855 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29d +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.5cd +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4a // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.210 +// CHECK:STDOUT: %require_complete => constants.%require_complete.892 // 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 d0470d0647c3f..dc06fea5619ab 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 @@ -29,7 +29,7 @@ class Goat {} impl Goat as Animal {} fn Feed[Food:! Edible, T:! Eats(Food)](e: T, food: Food) {} -fn HandleAnimal[T:! Animal, Food:! Edible](a: T, food: Food) { Feed(a, food); } +fn HandleAnimal[A:! Animal, Food:! Edible](a: A, food: Food) { Feed(a, food); } fn F() { HandleAnimal({} as Goat, {} as Grass); @@ -59,42 +59,44 @@ fn F() { // CHECK:STDOUT: %pattern_type.3c3: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %U: %Edible.type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %pattern_type.ae0: type = pattern_type %Edible.type [concrete] -// CHECK:STDOUT: %T.as_type.855: type = facet_access_type %T.611 [symbolic] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %Eats.type.130190.1: type = facet_type <@Eats, @Eats(%U.as_type)> [symbolic] -// CHECK:STDOUT: %Self.48d: %Eats.type.130190.1 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.1cbba0.1: = require_complete_type %Eats.type.130190.1 [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.b17e2e.1: = impl_witness file.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.611, %U) [symbolic] +// CHECK:STDOUT: %T.binding.as_type.5cd: type = symbolic_binding_type T, 0, %T.611 [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U [symbolic] +// CHECK:STDOUT: %Eats.type.8e412e.1: type = facet_type <@Eats, @Eats(%U.binding.as_type)> [symbolic] +// CHECK:STDOUT: %Self.07e: %Eats.type.8e412e.1 = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.8cda31.1: = require_complete_type %Eats.type.8e412e.1 [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.4bd7be.1: = impl_witness file.%Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%T.611, %U) [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %Animal.impl_witness: = impl_witness file.%Animal.impl_witness_table [concrete] // CHECK:STDOUT: %Food.f09: %Edible.type = bind_symbolic_name Food, 0 [symbolic] -// CHECK:STDOUT: %Food.as_type.b80: type = facet_access_type %Food.f09 [symbolic] -// CHECK:STDOUT: %Eats.type.ed1: type = facet_type <@Eats, @Eats(%Food.as_type.b80)> [symbolic] -// CHECK:STDOUT: %T.7d0: %Eats.type.ed1 = bind_symbolic_name T, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.788: type = pattern_type %Eats.type.ed1 [symbolic] -// CHECK:STDOUT: %Self.7d0: %Eats.type.ed1 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %T.as_type.bcd: type = facet_access_type %T.7d0 [symbolic] -// CHECK:STDOUT: %pattern_type.0ba: type = pattern_type %T.as_type.bcd [symbolic] -// CHECK:STDOUT: %pattern_type.8a3: type = pattern_type %Food.as_type.b80 [symbolic] +// CHECK:STDOUT: %Food.binding.as_type.4d0: type = symbolic_binding_type Food, 0, %Food.f09 [symbolic] +// CHECK:STDOUT: %Eats.type.1aa: type = facet_type <@Eats, @Eats(%Food.binding.as_type.4d0)> [symbolic] +// CHECK:STDOUT: %T.be7: %Eats.type.1aa = bind_symbolic_name T, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.5b0: type = pattern_type %Eats.type.1aa [symbolic] +// CHECK:STDOUT: %Self.be7: %Eats.type.1aa = bind_symbolic_name Self, 1 [symbolic] +// CHECK:STDOUT: %T.binding.as_type.4e5: type = symbolic_binding_type T, 1, %T.be7 [symbolic] +// CHECK:STDOUT: %pattern_type.d20: type = pattern_type %T.binding.as_type.4e5 [symbolic] +// CHECK:STDOUT: %pattern_type.252: type = pattern_type %Food.binding.as_type.4d0 [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.cee: = require_complete_type %T.as_type.bcd [symbolic] -// CHECK:STDOUT: %require_complete.c28: = require_complete_type %Food.as_type.b80 [symbolic] +// CHECK:STDOUT: %require_complete.f4c: = require_complete_type %T.binding.as_type.4e5 [symbolic] +// CHECK:STDOUT: %require_complete.edf: = require_complete_type %Food.binding.as_type.4d0 [symbolic] +// CHECK:STDOUT: %A: %Animal.type = bind_symbolic_name A, 0 [symbolic] // CHECK:STDOUT: %Food.dcb: %Edible.type = bind_symbolic_name Food, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.29d: type = pattern_type %T.as_type.855 [symbolic] -// CHECK:STDOUT: %Food.as_type.e6f: type = facet_access_type %Food.dcb [symbolic] -// CHECK:STDOUT: %pattern_type.71a: type = pattern_type %Food.as_type.e6f [symbolic] +// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] +// CHECK:STDOUT: %pattern_type.a4a: type = pattern_type %A.binding.as_type [symbolic] +// CHECK:STDOUT: %Food.binding.as_type.3c6: type = symbolic_binding_type Food, 1, %Food.dcb [symbolic] +// CHECK:STDOUT: %pattern_type.7a6: type = pattern_type %Food.binding.as_type.3c6 [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.210: = require_complete_type %T.as_type.855 [symbolic] -// CHECK:STDOUT: %require_complete.633: = require_complete_type %Food.as_type.e6f [symbolic] -// CHECK:STDOUT: %Eats.type.130190.2: type = facet_type <@Eats, @Eats(%Food.as_type.e6f)> [symbolic] -// CHECK:STDOUT: %require_complete.1cbba0.2: = require_complete_type %Eats.type.130190.2 [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.b17e2e.2: = impl_witness file.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.611, %Food.dcb) [symbolic] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.611, @Eats, @Eats(%Food.as_type.e6f) [symbolic] -// CHECK:STDOUT: %Eats.facet.7b7: %Eats.type.130190.2 = facet_value %T.as_type.855, (%Eats.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %pattern_type.e06: type = pattern_type %Eats.type.130190.2 [symbolic] -// CHECK:STDOUT: %Feed.specific_fn.76b: = specific_function %Feed, @Feed(%Food.dcb, %Eats.facet.7b7) [symbolic] +// CHECK:STDOUT: %require_complete.892: = require_complete_type %A.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.485: = require_complete_type %Food.binding.as_type.3c6 [symbolic] +// CHECK:STDOUT: %Eats.type.8e412e.2: type = facet_type <@Eats, @Eats(%Food.binding.as_type.3c6)> [symbolic] +// CHECK:STDOUT: %require_complete.8cda31.2: = require_complete_type %Eats.type.8e412e.2 [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.4bd7be.2: = impl_witness file.%Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%A, %Food.dcb) [symbolic] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A, @Eats, @Eats(%Food.binding.as_type.3c6) [symbolic] +// CHECK:STDOUT: %Eats.facet.070: %Eats.type.8e412e.2 = facet_value %A.binding.as_type, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %pattern_type.341: type = pattern_type %Eats.type.8e412e.2 [symbolic] +// CHECK:STDOUT: %Feed.specific_fn.c2a: = specific_function %Feed, @Feed(%Food.dcb, %Eats.facet.070) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] @@ -107,22 +109,22 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c0f: %type_where = facet_value %Grass, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7e4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c0f) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d49: %DestroyT.as_type.as.Destroy.impl.Op.type.7e4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e4a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c0f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.0f2: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e4a = struct_value () [concrete] // CHECK:STDOUT: %ptr.2bd: type = ptr_type %Grass [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6af: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.d49, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c0f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.dff: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.0f2, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.c0f) [concrete] // CHECK:STDOUT: %facet_value.8dd: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.8dd) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.8dd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.457: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729 = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.8dd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3aa: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.457, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.8dd) [concrete] // CHECK:STDOUT: %Eats.type.cee: type = facet_type <@Eats, @Eats(%Grass)> [concrete] // CHECK:STDOUT: %Self.16a: %Eats.type.cee = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %complete_type.eba: = complete_type_witness %Eats.type.cee [concrete] -// CHECK:STDOUT: %Eats.impl_witness.67c: = impl_witness file.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] -// CHECK:STDOUT: %Eats.facet.acf: %Eats.type.cee = facet_value %Goat, (%Eats.impl_witness.67c) [concrete] +// CHECK:STDOUT: %Eats.impl_witness.cce: = impl_witness file.%Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] +// CHECK:STDOUT: %Eats.facet.e7f: %Eats.type.cee = facet_value %Goat, (%Eats.impl_witness.cce) [concrete] // CHECK:STDOUT: %pattern_type.cf8: type = pattern_type %Eats.type.cee [concrete] -// CHECK:STDOUT: %Feed.specific_fn.cd3: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.acf) [concrete] +// CHECK:STDOUT: %Feed.specific_fn.be3: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.e7f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -162,18 +164,18 @@ fn F() { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Food.loc21_16.2: type = bind_symbolic_name Food, 0 [symbolic = %Food.loc21_16.1 (constants.%Food.8b3)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Eats.impl [concrete] { +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Eats.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.3c3 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.ae0 = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc26_14.1 [symbolic = %T.loc26_14.2 (constants.%T.611)] -// 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.855)] -// 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.855)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] +// CHECK:STDOUT: %.loc26_38: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] // CHECK:STDOUT: %Eats.ref: %Eats.type.ba2 = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] // CHECK:STDOUT: %U.ref: %Edible.type = name_ref U, %U.loc26_26.1 [symbolic = %U.loc26_26.2 (constants.%U)] -// 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.130190.1)] +// 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.8e412e.1)] // CHECK:STDOUT: %.loc26_18: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self.2: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] @@ -185,8 +187,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc26_26.1: %Edible.type = bind_symbolic_name U, 1 [symbolic = %U.loc26_26.2 (constants.%U)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @T.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table, @T.as_type.as.Eats.impl(constants.%T.611, constants.%U) [symbolic = @T.as_type.as.Eats.impl.%Eats.impl_witness (constants.%Eats.impl_witness.b17e2e.1)] +// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.Eats.impl [concrete] +// CHECK:STDOUT: %Eats.impl_witness: = impl_witness %Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(constants.%T.611, constants.%U) [symbolic = @T.binding.as_type.as.Eats.impl.%Eats.impl_witness (constants.%Eats.impl_witness.4bd7be.1)] // CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} // CHECK:STDOUT: impl_decl @Goat.as.Animal.impl [concrete] {} { // CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] @@ -196,73 +198,73 @@ fn F() { // CHECK:STDOUT: %Animal.impl_witness: = impl_witness %Animal.impl_witness_table [concrete = constants.%Animal.impl_witness] // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %Food.patt: %pattern_type.ae0 = symbolic_binding_pattern Food, 0 [concrete] -// CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_24 (%pattern_type.788) = symbolic_binding_pattern T, 1 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_40 (%pattern_type.0ba) = binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_40 (%pattern_type.0ba) = value_param_pattern %e.patt, call_param0 [concrete] -// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_46 (%pattern_type.8a3) = binding_pattern food [concrete] -// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_46 (%pattern_type.8a3) = value_param_pattern %food.patt, call_param1 [concrete] +// CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_24 (%pattern_type.5b0) = symbolic_binding_pattern T, 1 [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_40 (%pattern_type.d20) = binding_pattern e [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_40 (%pattern_type.d20) = value_param_pattern %e.patt, call_param0 [concrete] +// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_46 (%pattern_type.252) = binding_pattern food [concrete] +// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_46 (%pattern_type.252) = value_param_pattern %food.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc31_16: type = splice_block %Edible.ref [concrete = constants.%Edible.type] { // CHECK:STDOUT: %.Self.2: %type = bind_symbolic_name .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_9.2: %Edible.type = bind_symbolic_name Food, 0 [symbolic = %Food.loc31_9.1 (constants.%Food.f09)] -// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.2 [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.ed1)] { +// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.2 [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.1aa)] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: %Eats.type.ba2 = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] // CHECK:STDOUT: %Food.ref.loc31_33: %Edible.type = name_ref Food, %Food.loc31_9.2 [symbolic = %Food.loc31_9.1 (constants.%Food.f09)] -// 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.b80)] -// 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.b80)] -// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(constants.%Food.as_type.b80)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.ed1)] +// 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.4d0)] +// 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.4d0)] +// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(constants.%Food.binding.as_type.4d0)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.1aa)] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc31_24.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.ed1) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.1 (constants.%T.7d0)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc31_43.1 (%T.as_type.bcd) = value_param call_param0 -// CHECK:STDOUT: %.loc31_43.1: type = splice_block %.loc31_43.2 [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.bcd)] { -// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.1 (%Eats.type.ed1) = name_ref T, %T.loc31_24.2 [symbolic = %T.loc31_24.1 (constants.%T.7d0)] -// CHECK:STDOUT: %T.as_type.loc31_43.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.bcd)] -// CHECK:STDOUT: %.loc31_43.2: type = converted %T.ref, %T.as_type.loc31_43.2 [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.bcd)] +// CHECK:STDOUT: %T.loc31_24.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.1aa) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.1 (constants.%T.be7)] +// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type.4e5) = value_param call_param0 +// CHECK:STDOUT: %.loc31_43.1: type = splice_block %.loc31_43.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4e5)] { +// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.1 (%Eats.type.1aa) = name_ref T, %T.loc31_24.2 [symbolic = %T.loc31_24.1 (constants.%T.be7)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4e5)] +// CHECK:STDOUT: %.loc31_43.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4e5)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc31_43.1 (%T.as_type.bcd) = bind_name e, %e.param -// CHECK:STDOUT: %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.b80) = value_param call_param1 -// CHECK:STDOUT: %.loc31_52.1: type = splice_block %.loc31_52.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.b80)] { +// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type.4e5) = bind_name e, %e.param +// CHECK:STDOUT: %food.param: @Feed.%Food.binding.as_type (%Food.binding.as_type.4d0) = value_param call_param1 +// CHECK:STDOUT: %.loc31_52.1: type = splice_block %.loc31_52.2 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.4d0)] { // CHECK:STDOUT: %Food.ref.loc31_52: %Edible.type = name_ref Food, %Food.loc31_9.2 [symbolic = %Food.loc31_9.1 (constants.%Food.f09)] -// CHECK:STDOUT: %Food.as_type.loc31_52: type = facet_access_type %Food.ref.loc31_52 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.b80)] -// CHECK:STDOUT: %.loc31_52.2: type = converted %Food.ref.loc31_52, %Food.as_type.loc31_52 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.b80)] +// CHECK:STDOUT: %Food.as_type.loc31_52: type = facet_access_type %Food.ref.loc31_52 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.4d0)] +// CHECK:STDOUT: %.loc31_52.2: type = converted %Food.ref.loc31_52, %Food.as_type.loc31_52 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.4d0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.b80) = bind_name food, %food.param +// CHECK:STDOUT: %food: @Feed.%Food.binding.as_type (%Food.binding.as_type.4d0) = bind_name food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { -// CHECK:STDOUT: %T.patt: %pattern_type.3c3 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %A.patt: %pattern_type.3c3 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: %Food.patt: %pattern_type.ae0 = symbolic_binding_pattern Food, 1 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.29d) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.29d) = value_param_pattern %a.patt, call_param0 [concrete] -// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.71a) = binding_pattern food [concrete] -// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.71a) = value_param_pattern %food.patt, call_param1 [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.a4a) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_44 (%pattern_type.a4a) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.7a6) = binding_pattern food [concrete] +// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_50 (%pattern_type.7a6) = value_param_pattern %food.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc32_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self.2: %type = bind_symbolic_name .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.loc32_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc32_17.1 (constants.%T.611)] +// CHECK:STDOUT: %A.loc32_17.2: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc32_17.1 (constants.%A)] // CHECK:STDOUT: %.loc32_36: type = splice_block %Edible.ref [concrete = constants.%Edible.type] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .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.loc32_29.2: %Edible.type = bind_symbolic_name Food, 1 [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.855) = value_param call_param0 -// CHECK:STDOUT: %.loc32_47.1: type = splice_block %.loc32_47.2 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.855)] { -// CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc32_17.2 [symbolic = %T.loc32_17.1 (constants.%T.611)] -// CHECK:STDOUT: %T.as_type.loc32_47.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.855)] -// CHECK:STDOUT: %.loc32_47.2: type = converted %T.ref, %T.as_type.loc32_47.2 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.855)] +// 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.ref: %Animal.type = name_ref A, %A.loc32_17.2 [symbolic = %A.loc32_17.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: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.855) = bind_name a, %a.param -// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.e6f) = 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.e6f)] { +// CHECK:STDOUT: %a: @HandleAnimal.%A.binding.as_type (%A.binding.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.binding.as_type (%Food.binding.as_type.3c6) = 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.3c6)] { // CHECK:STDOUT: %Food.ref: %Edible.type = name_ref Food, %Food.loc32_29.2 [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] -// 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.e6f)] -// 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.e6f)] +// CHECK:STDOUT: %Food.as_type: type = facet_access_type %Food.ref [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.3c6)] +// CHECK:STDOUT: %.loc32_56.2: type = converted %Food.ref, %Food.as_type [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.3c6)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.e6f) = bind_name food, %food.param +// CHECK:STDOUT: %food: @HandleAnimal.%Food.binding.as_type (%Food.binding.as_type.3c6) = bind_name food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: %Edible.facet: %Edible.type = facet_value constants.%Grass, (constants.%Edible.impl_witness) [concrete = constants.%Edible.facet] @@ -308,14 +310,14 @@ fn F() { // CHECK:STDOUT: witness = file.%Edible.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Eats.impl(%T.loc26_14.1: %Animal.type, %U.loc26_26.1: %Edible.type) { +// CHECK:STDOUT: generic impl @T.binding.as_type.as.Eats.impl(%T.loc26_14.1: %Animal.type, %U.loc26_26.1: %Edible.type) { // CHECK:STDOUT: %T.loc26_14.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc26_14.2 (constants.%T.611)] // CHECK:STDOUT: %U.loc26_26.2: %Edible.type = bind_symbolic_name U, 1 [symbolic = %U.loc26_26.2 (constants.%U)] -// CHECK:STDOUT: %T.as_type.loc26_38.2: type = facet_access_type %T.loc26_14.2 [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.855)] -// CHECK:STDOUT: %U.as_type.loc26_49.2: type = facet_access_type %U.loc26_26.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.130190.1)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Eats.type.loc26_49.2 [symbolic = %require_complete (constants.%require_complete.1cbba0.1)] -// CHECK:STDOUT: %Eats.impl_witness: = impl_witness file.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.loc26_14.2, %U.loc26_26.2) [symbolic = %Eats.impl_witness (constants.%Eats.impl_witness.b17e2e.1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc26_14.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U.loc26_26.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.8e412e.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Eats.type.loc26_49.2 [symbolic = %require_complete (constants.%require_complete.8cda31.1)] +// CHECK:STDOUT: %Eats.impl_witness: = impl_witness file.%Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%T.loc26_14.2, %U.loc26_26.2) [symbolic = %Eats.impl_witness (constants.%Eats.impl_witness.4bd7be.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -346,53 +348,53 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%Food.loc31_9.2: %Edible.type, %T.loc31_24.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.ed1)) { +// CHECK:STDOUT: generic fn @Feed(%Food.loc31_9.2: %Edible.type, %T.loc31_24.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.1aa)) { // CHECK:STDOUT: %Food.loc31_9.1: %Edible.type = bind_symbolic_name Food, 0 [symbolic = %Food.loc31_9.1 (constants.%Food.f09)] -// CHECK:STDOUT: %Food.as_type.loc31_37.1: type = facet_access_type %Food.loc31_9.1 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.b80)] -// 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.ed1)] -// CHECK:STDOUT: %T.loc31_24.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.ed1) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.1 (constants.%T.7d0)] -// CHECK:STDOUT: %pattern_type.loc31_24: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_24 (constants.%pattern_type.788)] -// CHECK:STDOUT: %T.as_type.loc31_43.1: type = facet_access_type %T.loc31_24.1 [symbolic = %T.as_type.loc31_43.1 (constants.%T.as_type.bcd)] -// CHECK:STDOUT: %pattern_type.loc31_40: type = pattern_type %T.as_type.loc31_43.1 [symbolic = %pattern_type.loc31_40 (constants.%pattern_type.0ba)] -// CHECK:STDOUT: %pattern_type.loc31_46: type = pattern_type %Food.as_type.loc31_37.1 [symbolic = %pattern_type.loc31_46 (constants.%pattern_type.8a3)] +// CHECK:STDOUT: %Food.binding.as_type: type = symbolic_binding_type Food, 0, %Food.loc31_9.1 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.4d0)] +// 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.1aa)] +// CHECK:STDOUT: %T.loc31_24.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.1aa) = bind_symbolic_name T, 1 [symbolic = %T.loc31_24.1 (constants.%T.be7)] +// CHECK:STDOUT: %pattern_type.loc31_24: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_24 (constants.%pattern_type.5b0)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 1, %T.loc31_24.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4e5)] +// CHECK:STDOUT: %pattern_type.loc31_40: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc31_40 (constants.%pattern_type.d20)] +// CHECK:STDOUT: %pattern_type.loc31_46: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc31_46 (constants.%pattern_type.252)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc31_41: = require_complete_type %T.as_type.loc31_43.1 [symbolic = %require_complete.loc31_41 (constants.%require_complete.cee)] -// CHECK:STDOUT: %require_complete.loc31_50: = require_complete_type %Food.as_type.loc31_37.1 [symbolic = %require_complete.loc31_50 (constants.%require_complete.c28)] +// CHECK:STDOUT: %require_complete.loc31_41: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc31_41 (constants.%require_complete.f4c)] +// CHECK:STDOUT: %require_complete.loc31_50: = require_complete_type %Food.binding.as_type [symbolic = %require_complete.loc31_50 (constants.%require_complete.edf)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc31_43.1 (%T.as_type.bcd), %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.b80)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type.4e5), %food.param: @Feed.%Food.binding.as_type (%Food.binding.as_type.4d0)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @HandleAnimal(%T.loc32_17.2: %Animal.type, %Food.loc32_29.2: %Edible.type) { -// CHECK:STDOUT: %T.loc32_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc32_17.1 (constants.%T.611)] +// CHECK:STDOUT: generic fn @HandleAnimal(%A.loc32_17.2: %Animal.type, %Food.loc32_29.2: %Edible.type) { +// CHECK:STDOUT: %A.loc32_17.1: %Animal.type = bind_symbolic_name A, 0 [symbolic = %A.loc32_17.1 (constants.%A)] // CHECK:STDOUT: %Food.loc32_29.1: %Edible.type = bind_symbolic_name Food, 1 [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] -// CHECK:STDOUT: %T.as_type.loc32_47.1: type = facet_access_type %T.loc32_17.1 [symbolic = %T.as_type.loc32_47.1 (constants.%T.as_type.855)] -// CHECK:STDOUT: %pattern_type.loc32_44: type = pattern_type %T.as_type.loc32_47.1 [symbolic = %pattern_type.loc32_44 (constants.%pattern_type.29d)] -// CHECK:STDOUT: %Food.as_type.loc32_56.1: type = facet_access_type %Food.loc32_29.1 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.e6f)] -// CHECK:STDOUT: %pattern_type.loc32_50: type = pattern_type %Food.as_type.loc32_56.1 [symbolic = %pattern_type.loc32_50 (constants.%pattern_type.71a)] +// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc32_17.1 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc32_44: type = pattern_type %A.binding.as_type [symbolic = %pattern_type.loc32_44 (constants.%pattern_type.a4a)] +// CHECK:STDOUT: %Food.binding.as_type: type = symbolic_binding_type Food, 1, %Food.loc32_29.1 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.3c6)] +// CHECK:STDOUT: %pattern_type.loc32_50: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc32_50 (constants.%pattern_type.7a6)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %T.as_type.loc32_47.1 [symbolic = %require_complete.loc32_45 (constants.%require_complete.210)] -// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.as_type.loc32_56.1 [symbolic = %require_complete.loc32_54 (constants.%require_complete.633)] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc32_17.1, @Eats, @Eats(%Food.as_type.loc32_56.1) [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.as_type.loc32_56.1)> [symbolic = %Eats.type (constants.%Eats.type.130190.2)] -// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.130190.2) = facet_value %T.as_type.loc32_47.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.7b7)] -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_29.1, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.76b)] -// CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.855), %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.e6f)) { +// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %A.binding.as_type [symbolic = %require_complete.loc32_45 (constants.%require_complete.892)] +// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.binding.as_type [symbolic = %require_complete.loc32_54 (constants.%require_complete.485)] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A.loc32_17.1, @Eats, @Eats(%Food.binding.as_type) [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] +// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.binding.as_type)> [symbolic = %Eats.type (constants.%Eats.type.8e412e.2)] +// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.8e412e.2) = facet_value %A.binding.as_type, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.070)] +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_29.1, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.c2a)] +// 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.3c6)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc32_47.1 (%T.as_type.855) = name_ref a, %a -// CHECK:STDOUT: %food.ref: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.e6f) = name_ref food, %food -// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.as_type.e6f, constants.%Food.dcb [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] -// CHECK:STDOUT: %.loc32_76.2: %Edible.type = converted constants.%Food.as_type.e6f, constants.%Food.dcb [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] -// CHECK:STDOUT: %.loc32_76.3: %Edible.type = converted constants.%Food.as_type.e6f, constants.%Food.dcb [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] -// CHECK:STDOUT: %Eats.facet.loc32_76.1: @HandleAnimal.%Eats.type (%Eats.type.130190.2) = facet_value constants.%T.as_type.855, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.7b7)] -// CHECK:STDOUT: %.loc32_76.4: @HandleAnimal.%Eats.type (%Eats.type.130190.2) = converted constants.%T.as_type.855, %Eats.facet.loc32_76.1 [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.7b7)] -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.dcb, constants.%Eats.facet.7b7) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.76b)] +// 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.3c6) = name_ref food, %food +// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.binding.as_type.3c6, constants.%Food.dcb [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] +// CHECK:STDOUT: %.loc32_76.2: %Edible.type = converted constants.%Food.binding.as_type.3c6, constants.%Food.dcb [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] +// CHECK:STDOUT: %.loc32_76.3: %Edible.type = converted constants.%Food.binding.as_type.3c6, constants.%Food.dcb [symbolic = %Food.loc32_29.1 (constants.%Food.dcb)] +// CHECK:STDOUT: %Eats.facet.loc32_76.1: @HandleAnimal.%Eats.type (%Eats.type.8e412e.2) = facet_value constants.%A.binding.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.070)] +// CHECK:STDOUT: %.loc32_76.4: @HandleAnimal.%Eats.type (%Eats.type.8e412e.2) = converted constants.%A.binding.as_type, %Eats.facet.loc32_76.1 [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.070)] +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.dcb, constants.%Eats.facet.070) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.c2a)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc32_64.1(%a.ref, %food.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -427,18 +429,18 @@ fn F() { // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc35_19.2, %.loc35_31.2) // CHECK:STDOUT: %facet_value.loc35_29: %type_where = facet_value constants.%Grass, () [concrete = constants.%facet_value.c0f] // CHECK:STDOUT: %.loc35_29.5: %type_where = converted constants.%Grass, %facet_value.loc35_29 [concrete = constants.%facet_value.c0f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35_29: = bound_method %.loc35_29.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.d49 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.d49, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c0f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6af] -// CHECK:STDOUT: %bound_method.loc35_29: = bound_method %.loc35_29.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc35_29: = bound_method %.loc35_29.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0f2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0f2, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c0f) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.dff] +// CHECK:STDOUT: %bound_method.loc35_29: = bound_method %.loc35_29.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35_29: %ptr.2bd = addr_of %.loc35_29.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35_29: init %empty_tuple.type = call %bound_method.loc35_29(%addr.loc35_29) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc35_29: init %empty_tuple.type = call %bound_method.loc35_29(%addr.loc35_29) // CHECK:STDOUT: %facet_value.loc35_17: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value.8dd] // CHECK:STDOUT: %.loc35_17.5: %type_where = converted constants.%Goat, %facet_value.loc35_17 [concrete = constants.%facet_value.8dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35_17: = bound_method %.loc35_17.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.8dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.89e] -// CHECK:STDOUT: %bound_method.loc35_17: = bound_method %.loc35_17.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc35_17: = bound_method %.loc35_17.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.8dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3aa] +// CHECK:STDOUT: %bound_method.loc35_17: = bound_method %.loc35_17.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc35_17: %ptr.940 = addr_of %.loc35_17.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35_17: init %empty_tuple.type = call %bound_method.loc35_17(%addr.loc35_17) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc35_17: init %empty_tuple.type = call %bound_method.loc35_17(%addr.loc35_17) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -446,98 +448,98 @@ fn F() { // CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.8b3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%U.as_type) { -// CHECK:STDOUT: %Food.loc21_16.1 => constants.%U.as_type +// CHECK:STDOUT: specific @Eats(constants.%U.binding.as_type) { +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%U.binding.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.130190.1 -// CHECK:STDOUT: %Self.2 => constants.%Self.48d +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.8e412e.1 +// CHECK:STDOUT: %Self.2 => constants.%Self.07e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%T.611, constants.%U) { +// CHECK:STDOUT: specific @T.binding.as_type.as.Eats.impl(constants.%T.611, constants.%U) { // CHECK:STDOUT: %T.loc26_14.2 => constants.%T.611 // CHECK:STDOUT: %U.loc26_26.2 => constants.%U -// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%T.as_type.855 -// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%U.as_type -// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.130190.1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.1cbba0.1 -// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.b17e2e.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.5cd +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.8e412e.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.8cda31.1 +// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.4bd7be.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.b80) { -// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.as_type.b80 +// CHECK:STDOUT: specific @Eats(constants.%Food.binding.as_type.4d0) { +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.binding.as_type.4d0 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.ed1 -// CHECK:STDOUT: %Self.2 => constants.%Self.7d0 +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.1aa +// CHECK:STDOUT: %Self.2 => constants.%Self.be7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Food.f09, constants.%T.7d0) { +// CHECK:STDOUT: specific @Feed(constants.%Food.f09, constants.%T.be7) { // CHECK:STDOUT: %Food.loc31_9.1 => constants.%Food.f09 -// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.b80 -// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.ed1 -// CHECK:STDOUT: %T.loc31_24.1 => constants.%T.7d0 -// CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.788 -// CHECK:STDOUT: %T.as_type.loc31_43.1 => constants.%T.as_type.bcd -// CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.0ba -// CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.8a3 +// CHECK:STDOUT: %Food.binding.as_type => constants.%Food.binding.as_type.4d0 +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.1aa +// CHECK:STDOUT: %T.loc31_24.1 => constants.%T.be7 +// CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.5b0 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.4e5 +// CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.d20 +// CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.252 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @HandleAnimal(constants.%T.611, constants.%Food.dcb) { -// CHECK:STDOUT: %T.loc32_17.1 => constants.%T.611 +// CHECK:STDOUT: specific @HandleAnimal(constants.%A, constants.%Food.dcb) { +// CHECK:STDOUT: %A.loc32_17.1 => constants.%A // CHECK:STDOUT: %Food.loc32_29.1 => constants.%Food.dcb -// CHECK:STDOUT: %T.as_type.loc32_47.1 => constants.%T.as_type.855 -// CHECK:STDOUT: %pattern_type.loc32_44 => constants.%pattern_type.29d -// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Food.as_type.e6f -// CHECK:STDOUT: %pattern_type.loc32_50 => constants.%pattern_type.71a +// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type +// CHECK:STDOUT: %pattern_type.loc32_44 => constants.%pattern_type.a4a +// CHECK:STDOUT: %Food.binding.as_type => constants.%Food.binding.as_type.3c6 +// CHECK:STDOUT: %pattern_type.loc32_50 => constants.%pattern_type.7a6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.e6f) { -// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.as_type.e6f +// CHECK:STDOUT: specific @Eats(constants.%Food.binding.as_type.3c6) { +// CHECK:STDOUT: %Food.loc21_16.1 => constants.%Food.binding.as_type.3c6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%T.611, constants.%Food.dcb) { -// CHECK:STDOUT: %T.loc26_14.2 => constants.%T.611 +// CHECK:STDOUT: specific @T.binding.as_type.as.Eats.impl(constants.%A, constants.%Food.dcb) { +// CHECK:STDOUT: %T.loc26_14.2 => constants.%A // CHECK:STDOUT: %U.loc26_26.2 => constants.%Food.dcb -// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%T.as_type.855 -// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%Food.as_type.e6f -// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.130190.2 -// CHECK:STDOUT: %require_complete => constants.%require_complete.1cbba0.2 -// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.b17e2e.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%A.binding.as_type +// CHECK:STDOUT: %U.binding.as_type => constants.%Food.binding.as_type.3c6 +// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.8e412e.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.8cda31.2 +// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.4bd7be.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Food.dcb, constants.%Eats.facet.7b7) { +// CHECK:STDOUT: specific @Feed(constants.%Food.dcb, constants.%Eats.facet.070) { // CHECK:STDOUT: %Food.loc31_9.1 => constants.%Food.dcb -// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.e6f -// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.130190.2 -// CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.7b7 -// CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.e06 -// CHECK:STDOUT: %T.as_type.loc31_43.1 => constants.%T.as_type.855 -// CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.29d -// CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.71a +// CHECK:STDOUT: %Food.binding.as_type => constants.%Food.binding.as_type.3c6 +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.8e412e.2 +// CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.070 +// CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.341 +// CHECK:STDOUT: %T.binding.as_type => constants.%A.binding.as_type +// CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.a4a +// CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.7a6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc31_41 => constants.%require_complete.210 -// CHECK:STDOUT: %require_complete.loc31_50 => constants.%require_complete.633 +// CHECK:STDOUT: %require_complete.loc31_41 => constants.%require_complete.892 +// CHECK:STDOUT: %require_complete.loc31_50 => constants.%require_complete.485 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet, constants.%Edible.facet) { -// CHECK:STDOUT: %T.loc32_17.1 => constants.%Animal.facet +// CHECK:STDOUT: %A.loc32_17.1 => constants.%Animal.facet // CHECK:STDOUT: %Food.loc32_29.1 => constants.%Edible.facet -// CHECK:STDOUT: %T.as_type.loc32_47.1 => constants.%Goat +// CHECK:STDOUT: %A.binding.as_type => constants.%Goat // CHECK:STDOUT: %pattern_type.loc32_44 => constants.%pattern_type.ab7 -// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Grass +// CHECK:STDOUT: %Food.binding.as_type => constants.%Grass // CHECK:STDOUT: %pattern_type.loc32_50 => constants.%pattern_type.aff // 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: %Eats.lookup_impl_witness => constants.%Eats.impl_witness.67c +// CHECK:STDOUT: %Eats.lookup_impl_witness => constants.%Eats.impl_witness.cce // CHECK:STDOUT: %Eats.type => constants.%Eats.type.cee -// CHECK:STDOUT: %Eats.facet.loc32_76.2 => constants.%Eats.facet.acf -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2 => constants.%Feed.specific_fn.cd3 +// CHECK:STDOUT: %Eats.facet.loc32_76.2 => constants.%Eats.facet.e7f +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2 => constants.%Feed.specific_fn.be3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Grass) { @@ -548,25 +550,25 @@ fn F() { // CHECK:STDOUT: %Self.2 => constants.%Self.16a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%Animal.facet, constants.%Edible.facet) { +// CHECK:STDOUT: specific @T.binding.as_type.as.Eats.impl(constants.%Animal.facet, constants.%Edible.facet) { // CHECK:STDOUT: %T.loc26_14.2 => constants.%Animal.facet // CHECK:STDOUT: %U.loc26_26.2 => constants.%Edible.facet -// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%Goat -// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%Grass +// CHECK:STDOUT: %T.binding.as_type => constants.%Goat +// CHECK:STDOUT: %U.binding.as_type => constants.%Grass // CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.cee // CHECK:STDOUT: %require_complete => constants.%complete_type.eba -// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.67c +// CHECK:STDOUT: %Eats.impl_witness => constants.%Eats.impl_witness.cce // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.acf) { +// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.e7f) { // CHECK:STDOUT: %Food.loc31_9.1 => constants.%Edible.facet -// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Grass +// CHECK:STDOUT: %Food.binding.as_type => constants.%Grass // CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.cee -// CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.acf +// CHECK:STDOUT: %T.loc31_24.1 => constants.%Eats.facet.e7f // CHECK:STDOUT: %pattern_type.loc31_24 => constants.%pattern_type.cf8 -// CHECK:STDOUT: %T.as_type.loc31_43.1 => constants.%Goat +// CHECK:STDOUT: %T.binding.as_type => constants.%Goat // CHECK:STDOUT: %pattern_type.loc31_40 => constants.%pattern_type.ab7 // CHECK:STDOUT: %pattern_type.loc31_46 => constants.%pattern_type.aff // 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 5835a6b762d3f..85f70c294da03 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 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %Animal.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3c3: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.29d: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.a4a: type = pattern_type %T.binding.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.210: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.892: = require_complete_type %T.binding.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.a33: = specific_function %FeedAnimal, @FeedAnimal(%T) [symbolic] @@ -56,10 +56,10 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Goat, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.353: %DestroyT.as_type.as.Destroy.impl.Op.type.f2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.457: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.729 = struct_value () [concrete] // CHECK:STDOUT: %ptr.940: type = ptr_type %Goat [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.457, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %FeedAnimal.specific_fn.2ba: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -85,39 +85,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.3c3 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.29d) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.29d) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.a4a) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.a4a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_15.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] -// CHECK:STDOUT: %a.param: @FeedAnimal.%T.as_type.loc17_30.1 (%T.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %a.param: @FeedAnimal.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_30.1: type = splice_block %.loc17_30.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_15.2 [symbolic = %T.loc17_15.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc17_30.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type.loc17_30.2 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc17_30.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @FeedAnimal.%T.as_type.loc17_30.1 (%T.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @FeedAnimal.%T.binding.as_type (%T.binding.as_type) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.3c3 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.29d) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.29d) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.a4a) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.a4a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc19_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.1 (constants.%T)] -// 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: %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: %T.ref: %Animal.type = name_ref T, %T.loc19_17.2 [symbolic = %T.loc19_17.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.binding.as_type (%T.binding.as_type) = bind_name 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] {} { @@ -152,13 +152,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_15.2: %Animal.type) { // CHECK:STDOUT: %T.loc17_15.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc17_15.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc17_30.1: type = facet_access_type %T.loc17_15.1 [symbolic = %T.as_type.loc17_30.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_30.1 [symbolic = %pattern_type (constants.%pattern_type.29d)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc17_15.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.a4a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_30.1 [symbolic = %require_complete (constants.%require_complete.210)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.892)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @FeedAnimal.%T.as_type.loc17_30.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%a.param: @FeedAnimal.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -166,19 +166,19 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_17.2: %Animal.type) { // CHECK:STDOUT: %T.loc19_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc19_17.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc19_32.1: type = facet_access_type %T.loc19_17.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.29d)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc19_17.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.a4a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc19_32.1 [symbolic = %require_complete (constants.%require_complete.210)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.892)] // CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_17.1) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.a33)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.binding.as_type (%T.binding.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.as_type.loc19_32.1 (%T.as_type) = name_ref a, %a -// CHECK:STDOUT: %.loc19_49.1: %Animal.type = converted constants.%T.as_type, constants.%T [symbolic = %T.loc19_17.1 (constants.%T)] -// CHECK:STDOUT: %.loc19_49.2: %Animal.type = converted constants.%T.as_type, constants.%T [symbolic = %T.loc19_17.1 (constants.%T)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.binding.as_type (%T.binding.as_type) = name_ref a, %a +// CHECK:STDOUT: %.loc19_49.1: %Animal.type = converted constants.%T.binding.as_type, constants.%T [symbolic = %T.loc19_17.1 (constants.%T)] +// CHECK:STDOUT: %.loc19_49.2: %Animal.type = converted constants.%T.binding.as_type, constants.%T [symbolic = %T.loc19_17.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.a33)] // CHECK:STDOUT: %FeedAnimal.call: init %empty_tuple.type = call %FeedAnimal.specific_fn.loc19_37.1(%a.ref) // CHECK:STDOUT: return @@ -203,32 +203,32 @@ fn F() { // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn(%.loc25_19.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Goat, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_17.5: %type_where = converted constants.%Goat, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_17.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.353 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.353, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc25_17.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_17.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.457, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc25_17.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.940 = addr_of %.loc25_17.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%T) { // CHECK:STDOUT: %T.loc17_15.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29d +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4a // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.210 +// CHECK:STDOUT: %require_complete => constants.%require_complete.892 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T) { // CHECK:STDOUT: %T.loc19_17.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29d +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc19_17.1 => constants.%Animal.facet -// CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%Goat +// CHECK:STDOUT: %T.binding.as_type => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ab7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -238,7 +238,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc17_15.1 => constants.%Animal.facet -// CHECK:STDOUT: %T.as_type.loc17_30.1 => constants.%Goat +// CHECK:STDOUT: %T.binding.as_type => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ab7 // 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 f43eb1dac735a..9f4eed7e33a58 100644 --- a/toolchain/check/testdata/facet/facet_assoc_const.carbon +++ b/toolchain/check/testdata/facet/facet_assoc_const.carbon @@ -685,7 +685,7 @@ fn F(T:! I & J where .I1 = .J1.I2) {} // CHECK:STDOUT: %assoc1: %M.assoc_type = assoc_entity element1, @M.%Y [concrete] // CHECK:STDOUT: %assoc2: %M.assoc_type = assoc_entity element2, @M.%Z [concrete] // CHECK:STDOUT: %.Self.1bb: %M.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1bb [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1bb [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self.1bb, @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] @@ -708,29 +708,29 @@ fn F(T:! I & J where .I1 = .J1.I2) {} // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc13_18: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %X.ref.loc13_18: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc13_18: type = facet_access_type %.Self.ref.loc13_18 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc13_18: type = converted %.Self.ref.loc13_18, %.Self.as_type.loc13_18 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_18: type = facet_access_type %.Self.ref.loc13_18 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc13_18: type = converted %.Self.ref.loc13_18, %.Self.as_type.loc13_18 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0.loc13_18: type = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.Self.ref.loc13_23: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %Y.ref.loc13_23: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %.Self.as_type.loc13_23: type = facet_access_type %.Self.ref.loc13_23 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc13_23: type = converted %.Self.ref.loc13_23, %.Self.as_type.loc13_23 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_23: type = facet_access_type %.Self.ref.loc13_23 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc13_23: type = converted %.Self.ref.loc13_23, %.Self.as_type.loc13_23 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem1.loc13_23: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_30: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %Y.ref.loc13_30: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] -// 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: %.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: %impl.elem1.loc13_30: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_35: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %X.ref.loc13_35: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc13_35: type = facet_access_type %.Self.ref.loc13_35 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc13_35: type = converted %.Self.ref.loc13_35, %.Self.as_type.loc13_35 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_35: type = facet_access_type %.Self.ref.loc13_35 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc13_35: type = converted %.Self.ref.loc13_35, %.Self.as_type.loc13_35 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0.loc13_35: 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_35, %impl.elem1.loc13_23 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_42: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc2 [concrete = constants.%assoc2] -// 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: %.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: %impl.elem2: type = impl_witness_access constants.%M.lookup_impl_witness, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %.loc13_48.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc13_48.2: type = converted %.loc13_48.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] 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 9f8848b27708a..dfb3f6b3bd1ac 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 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T.9e6: %Eats.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.384: type = pattern_type %Eats.type [concrete] -// CHECK:STDOUT: %T.as_type.918: type = facet_access_type %T.9e6 [symbolic] -// CHECK:STDOUT: %pattern_type.7fd: type = pattern_type %T.as_type.918 [symbolic] +// CHECK:STDOUT: %T.binding.as_type.4fe: type = symbolic_binding_type T, 0, %T.9e6 [symbolic] +// CHECK:STDOUT: %pattern_type.fae: type = pattern_type %T.binding.as_type.4fe [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.89b: = require_complete_type %T.as_type.918 [symbolic] +// CHECK:STDOUT: %require_complete.de6: = require_complete_type %T.binding.as_type.4fe [symbolic] // CHECK:STDOUT: %T.611: %Animal.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3c3: type = pattern_type %Animal.type [concrete] -// CHECK:STDOUT: %T.as_type.855: type = facet_access_type %T.611 [symbolic] -// CHECK:STDOUT: %pattern_type.29d: type = pattern_type %T.as_type.855 [symbolic] +// CHECK:STDOUT: %T.binding.as_type.5cd: type = symbolic_binding_type T, 0, %T.611 [symbolic] +// CHECK:STDOUT: %pattern_type.a4a: type = pattern_type %T.binding.as_type.5cd [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.210: = require_complete_type %T.as_type.855 [symbolic] +// CHECK:STDOUT: %require_complete.892: = require_complete_type %T.binding.as_type.5cd [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.384 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.7fd) = binding_pattern e [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.7fd) = value_param_pattern %e.patt, call_param0 [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.fae) = binding_pattern e [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.fae) = value_param_pattern %e.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_9.2: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_9.1 (constants.%T.9e6)] -// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc18_22.1 (%T.as_type.918) = value_param call_param0 -// CHECK:STDOUT: %.loc18_22.1: type = splice_block %.loc18_22.2 [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.918)] { +// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type.4fe) = value_param call_param0 +// CHECK:STDOUT: %.loc18_22.1: type = splice_block %.loc18_22.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] { // CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc18_9.2 [symbolic = %T.loc18_9.1 (constants.%T.9e6)] -// CHECK:STDOUT: %T.as_type.loc18_22.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.918)] -// CHECK:STDOUT: %.loc18_22.2: type = converted %T.ref, %T.as_type.loc18_22.2 [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.918)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] +// CHECK:STDOUT: %.loc18_22.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.as_type.loc18_22.1 (%T.as_type.918) = bind_name e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type.4fe) = bind_name e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.3c3 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.29d) = binding_pattern a [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.29d) = value_param_pattern %a.patt, call_param0 [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.a4a) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.a4a) = value_param_pattern %a.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_17.2: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_17.1 (constants.%T.611)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.855) = 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.855)] { +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd) = 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.5cd)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc27_17.2 [symbolic = %T.loc27_17.1 (constants.%T.611)] -// 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.855)] -// 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.855)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] +// CHECK:STDOUT: %.loc27_32.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.5cd)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.855) = bind_name a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd) = bind_name a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -125,13 +125,13 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc18_9.2: %Eats.type) { // CHECK:STDOUT: %T.loc18_9.1: %Eats.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_9.1 (constants.%T.9e6)] -// CHECK:STDOUT: %T.as_type.loc18_22.1: type = facet_access_type %T.loc18_9.1 [symbolic = %T.as_type.loc18_22.1 (constants.%T.as_type.918)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_22.1 [symbolic = %pattern_type (constants.%pattern_type.7fd)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc18_9.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4fe)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fae)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc18_22.1 [symbolic = %require_complete (constants.%require_complete.89b)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.de6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc18_22.1 (%T.as_type.918)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type.4fe)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -139,29 +139,29 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc27_17.2: %Animal.type) { // CHECK:STDOUT: %T.loc27_17.1: %Animal.type = bind_symbolic_name T, 0 [symbolic = %T.loc27_17.1 (constants.%T.611)] -// CHECK:STDOUT: %T.as_type.loc27_32.1: type = facet_access_type %T.loc27_17.1 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.855)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc27_32.1 [symbolic = %pattern_type (constants.%pattern_type.29d)] +// 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.5cd)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.a4a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc27_32.1 [symbolic = %require_complete (constants.%require_complete.210)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.892)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.855)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.855) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.5cd) = name_ref a, %a // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T.9e6) { // CHECK:STDOUT: %T.loc18_9.1 => constants.%T.9e6 -// CHECK:STDOUT: %T.as_type.loc18_22.1 => constants.%T.as_type.918 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7fd +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.4fe +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fae // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.611) { // CHECK:STDOUT: %T.loc27_17.1 => constants.%T.611 -// CHECK:STDOUT: %T.as_type.loc27_32.1 => constants.%T.as_type.855 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29d +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.5cd +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a4a // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon index efc879cd8844f..49b1007e64fb5 100644 --- a/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon +++ b/toolchain/check/testdata/facet/fail_deduction_uses_runtime_type_conversion.carbon @@ -88,15 +88,15 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d7d: %type_where = facet_value %RuntimeConvertTo, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d4d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d7d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c9f: %DestroyT.as_type.as.Destroy.impl.Op.type.d4d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f50: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d7d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.56b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f50 = struct_value () [concrete] // CHECK:STDOUT: %ptr.339: type = ptr_type %RuntimeConvertTo [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e71: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c9f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d7d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f82: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.56b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d7d) [concrete] // CHECK:STDOUT: %facet_value.631: %type_where = facet_value %RuntimeConvertFrom, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.abd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.631) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.58a: %DestroyT.as_type.as.Destroy.impl.Op.type.abd = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.88f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.631) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.558: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.88f = struct_value () [concrete] // CHECK:STDOUT: %ptr.415: type = ptr_type %RuntimeConvertFrom [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b86: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.58a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.631) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.451: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.558, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.631) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -292,18 +292,18 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%holds_to.ref) // CHECK:STDOUT: %facet_value.loc41: %type_where = facet_value constants.%RuntimeConvertTo, () [concrete = constants.%facet_value.d7d] // CHECK:STDOUT: %.loc41_19.5: %type_where = converted constants.%RuntimeConvertTo, %facet_value.loc41 [concrete = constants.%facet_value.d7d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_19.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.c9f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c9f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d7d) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e71] -// CHECK:STDOUT: %bound_method.loc41_19.2: = bound_method %.loc41_19.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_19.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.56b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.56b, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d7d) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.f82] +// CHECK:STDOUT: %bound_method.loc41_19.2: = bound_method %.loc41_19.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.339 = addr_of %.loc41_19.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_19.2(%addr.loc41) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_19.2(%addr.loc41) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%RuntimeConvertFrom, () [concrete = constants.%facet_value.631] // CHECK:STDOUT: %.loc30_36.5: %type_where = converted constants.%RuntimeConvertFrom, %facet_value.loc30 [concrete = constants.%facet_value.631] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_36.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.58a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.58a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.631) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b86] -// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_36.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_36.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.558 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.558, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.631) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.451] +// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_36.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.415 = addr_of %.loc30_36.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30) // CHECK:STDOUT: return // CHECK:STDOUT: } // 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 ae9e660fd0be8..4475da712cd15 100644 --- a/toolchain/check/testdata/facet/self_in_interface_param.carbon +++ b/toolchain/check/testdata/facet/self_in_interface_param.carbon @@ -30,19 +30,19 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: %I.type.dac: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [concrete] -// CHECK:STDOUT: %.Self.as_type.b20: type = facet_access_type %.Self.659 [symbolic_self] -// CHECK:STDOUT: %I.type.389: type = facet_type <@I, @I(%.Self.as_type.b20)> [symbolic_self] -// CHECK:STDOUT: %.Self.bcd: %I.type.389 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %I.assoc_type.aa6: type = assoc_entity_type @I, @I(%.Self.as_type.b20) [symbolic_self] -// CHECK:STDOUT: %assoc0.9cb: %I.assoc_type.aa6 = assoc_entity element0, @I.%I1 [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.d4f: type = facet_access_type %.Self.bcd [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness.89d: = lookup_impl_witness %.Self.bcd, @I, @I(%.Self.as_type.b20) [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.89d, element0 [symbolic_self] -// CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.as_type.b20) where %impl.elem0 = %empty_tuple.type> [symbolic_self] -// CHECK:STDOUT: %T.5fa: %I_where.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.06c: type = pattern_type %I_where.type [symbolic_self] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.5fa [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness.f06: = lookup_impl_witness %T.5fa, @I, @I(%.Self.as_type.b20) [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type.373: type = symbolic_binding_type .Self, %.Self.659 [symbolic_self] +// CHECK:STDOUT: %I.type.986: type = facet_type <@I, @I(%.Self.binding.as_type.373)> [symbolic_self] +// CHECK:STDOUT: %.Self.955: %I.type.986 = bind_symbolic_name .Self [symbolic_self] +// CHECK:STDOUT: %I.assoc_type.4e2: type = assoc_entity_type @I, @I(%.Self.binding.as_type.373) [symbolic_self] +// CHECK:STDOUT: %assoc0.7d3: %I.assoc_type.4e2 = assoc_entity element0, @I.%I1 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.320: type = symbolic_binding_type .Self, %.Self.955 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness.462: = lookup_impl_witness %.Self.955, @I, @I(%.Self.binding.as_type.373) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.462, element0 [symbolic_self] +// CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.binding.as_type.373) where %impl.elem0 = %empty_tuple.type> [symbolic_self] +// CHECK:STDOUT: %T.797: %I_where.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %pattern_type.85a: type = pattern_type %I_where.type [symbolic_self] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.797 [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness.920: = lookup_impl_witness %T.797, @I, @I(%.Self.binding.as_type.373) [symbolic] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -51,47 +51,47 @@ 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.06c = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.85a = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_6.2 [symbolic = %T.loc18_6.1 (constants.%T.5fa)] -// CHECK:STDOUT: %.loc18_39.1: %I.assoc_type.aa6 = specific_constant @I1.%assoc0, @I(constants.%.Self.as_type.b20) [symbolic_self = constants.%assoc0.9cb] -// CHECK:STDOUT: %I1.ref.loc18_39: %I.assoc_type.aa6 = name_ref I1, %.loc18_39.1 [symbolic_self = constants.%assoc0.9cb] -// 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.2: type = converted %T.ref, %T.as_type.loc18_39.2 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0.loc18_39: type = impl_witness_access constants.%I.lookup_impl_witness.f06, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_6.2 [symbolic = %T.loc18_6.1 (constants.%T.797)] +// CHECK:STDOUT: %.loc18_39.1: %I.assoc_type.4e2 = specific_constant @I1.%assoc0, @I(constants.%.Self.binding.as_type.373) [symbolic_self = constants.%assoc0.7d3] +// CHECK:STDOUT: %I1.ref.loc18_39: %I.assoc_type.4e2 = name_ref I1, %.loc18_39.1 [symbolic_self = constants.%assoc0.7d3] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc18_39.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %impl.elem0.loc18_39: type = impl_witness_access constants.%I.lookup_impl_witness.920, element0 [concrete = constants.%empty_tuple.type] // 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.dac = 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.659] -// CHECK:STDOUT: %.Self.as_type.loc18_17: type = facet_access_type %.Self.ref.loc18_12 [symbolic_self = constants.%.Self.as_type.b20] -// CHECK:STDOUT: %.loc18_17: type = converted %.Self.ref.loc18_12, %.Self.as_type.loc18_17 [symbolic_self = constants.%.Self.as_type.b20] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.b20)> [symbolic_self = constants.%I.type.389] +// CHECK:STDOUT: %.Self.as_type.loc18_17: type = facet_access_type %.Self.ref.loc18_12 [symbolic_self = constants.%.Self.binding.as_type.373] +// CHECK:STDOUT: %.loc18_17: type = converted %.Self.ref.loc18_12, %.Self.as_type.loc18_17 [symbolic_self = constants.%.Self.binding.as_type.373] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.binding.as_type.373)> [symbolic_self = constants.%I.type.986] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref.loc18_25: %I.type.389 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.bcd] -// CHECK:STDOUT: %.loc18_25.1: %I.assoc_type.aa6 = specific_constant @I1.%assoc0, @I(constants.%.Self.as_type.b20) [symbolic_self = constants.%assoc0.9cb] -// CHECK:STDOUT: %I1.ref.loc18_25: %I.assoc_type.aa6 = name_ref I1, %.loc18_25.1 [symbolic_self = constants.%assoc0.9cb] -// CHECK:STDOUT: %.Self.as_type.loc18_25: type = facet_access_type %.Self.ref.loc18_25 [symbolic_self = constants.%.Self.as_type.d4f] -// CHECK:STDOUT: %.loc18_25.2: type = converted %.Self.ref.loc18_25, %.Self.as_type.loc18_25 [symbolic_self = constants.%.Self.as_type.d4f] -// CHECK:STDOUT: %impl.elem0.loc18_25: type = impl_witness_access constants.%I.lookup_impl_witness.89d, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.ref.loc18_25: %I.type.986 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.955] +// CHECK:STDOUT: %.loc18_25.1: %I.assoc_type.4e2 = specific_constant @I1.%assoc0, @I(constants.%.Self.binding.as_type.373) [symbolic_self = constants.%assoc0.7d3] +// CHECK:STDOUT: %I1.ref.loc18_25: %I.assoc_type.4e2 = name_ref I1, %.loc18_25.1 [symbolic_self = constants.%assoc0.7d3] +// CHECK:STDOUT: %.Self.as_type.loc18_25: type = facet_access_type %.Self.ref.loc18_25 [symbolic_self = constants.%.Self.binding.as_type.320] +// CHECK:STDOUT: %.loc18_25.2: type = converted %.Self.ref.loc18_25, %.Self.as_type.loc18_25 [symbolic_self = constants.%.Self.binding.as_type.320] +// CHECK:STDOUT: %impl.elem0.loc18_25: type = impl_witness_access constants.%I.lookup_impl_witness.462, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc18_32.1: %empty_tuple.type = tuple_literal () // 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.389 +// CHECK:STDOUT: requirement_base_facet_type constants.%I.type.986 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_25, %.loc18_32.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc18_6.2: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_6.1 (constants.%T.5fa)] +// CHECK:STDOUT: %T.loc18_6.2: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_6.1 (constants.%T.797)] // 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_6.2: %I_where.type) { -// CHECK:STDOUT: %T.loc18_6.1: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_6.1 (constants.%T.5fa)] -// CHECK:STDOUT: %T.as_type.loc18_39.1: type = facet_access_type %T.loc18_6.1 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] -// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc18_6.1, @I, @I(constants.%.Self.as_type.b20) [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.f06)] +// CHECK:STDOUT: %T.loc18_6.1: %I_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc18_6.1 (constants.%T.797)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc18_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc18_6.1, @I, @I(constants.%.Self.binding.as_type.373) [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.920)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -104,9 +104,9 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.5fa) { -// CHECK:STDOUT: %T.loc18_6.1 => constants.%T.5fa -// CHECK:STDOUT: %T.as_type.loc18_39.1 => constants.%T.as_type -// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.f06 +// CHECK:STDOUT: specific @F(constants.%T.797) { +// CHECK:STDOUT: %T.loc18_6.1 => constants.%T.797 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.920 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index c7c16a729ed01..a7c257806c01c 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -74,7 +74,7 @@ fn Read() { // CHECK:STDOUT: %.Self.adc: %Iterate.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %Iterate.assoc_type: type = assoc_entity_type @Iterate [concrete] // CHECK:STDOUT: %assoc1.02e: %Iterate.assoc_type = assoc_entity element1, imports.%Core.import_ref.9e6 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.adc [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.adc [symbolic_self] // CHECK:STDOUT: %Iterate.lookup_impl_witness.106: = lookup_impl_witness %.Self.adc, @Iterate [symbolic_self] // CHECK:STDOUT: %impl.elem1.1c0: type = impl_witness_access %Iterate.lookup_impl_witness.106, element1 [symbolic_self] // CHECK:STDOUT: %assoc0.0f6: %Iterate.assoc_type = assoc_entity element0, imports.%Core.import_ref.61e [concrete] @@ -152,15 +152,15 @@ fn Read() { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Int.49d0e6.1, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.920: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.16a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.35f: %DestroyT.as_type.as.Destroy.impl.Op.type.16a = struct_value () [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.49d0e6.1, (%Destroy.impl_witness.920) [symbolic] -// CHECK:STDOUT: %.4ec: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.35f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.47b: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.db2: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.49d0e6.1, (%Destroy.impl_witness.47b) [symbolic] +// CHECK:STDOUT: %.944: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.db2, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.016, @Optional.None(%Copy.facet.cd7) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -240,8 +240,8 @@ fn Read() { // CHECK:STDOUT: %OrderedWith.impl_witness_table.95f = impl_witness_table (%Core.import_ref.ab6, %Core.import_ref.54d, %Core.import_ref.e00, %Core.import_ref.a77), @Int.as.OrderedWith.impl.aed [concrete] // CHECK:STDOUT: %Core.Inc: type = import_ref Core//prelude/operators/arithmetic, Inc, loaded [concrete = constants.%Inc.type] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.import_ref.ee7: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.340) = 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.1c0)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.9e9 = impl_witness_table (%Core.import_ref.ee7), @Core.IntLiteral.as.ImplicitAs.impl [concrete] @@ -417,8 +417,8 @@ fn Read() { // CHECK:STDOUT: %.Self: %Iterate.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.adc] // CHECK:STDOUT: %.Self.ref.loc9_30: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.adc] // CHECK:STDOUT: %CursorType.ref: %Iterate.assoc_type = name_ref CursorType, imports.%Core.import_ref.ed6 [concrete = constants.%assoc1.02e] -// 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: %.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: %impl.elem1: type = impl_witness_access constants.%Iterate.lookup_impl_witness.106, element1 [symbolic_self = constants.%impl.elem1.1c0] // CHECK:STDOUT: %Core.ref.loc9_44: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc9_48: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] @@ -426,8 +426,8 @@ fn Read() { // CHECK:STDOUT: %Int.loc9_54.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.1 (constants.%Int.49d0e6.1)] // CHECK:STDOUT: %.Self.ref.loc9_60: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.adc] // CHECK:STDOUT: %ElementType.ref: %Iterate.assoc_type = name_ref ElementType, imports.%Core.import_ref.119 [concrete = constants.%assoc0.0f6] -// 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: %.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: %impl.elem0: %Copy.type = impl_witness_access constants.%Iterate.lookup_impl_witness.106, element0 [symbolic_self = constants.%impl.elem0.5f7] // CHECK:STDOUT: %Core.ref.loc9_75: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Int.ref.loc9_79: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] @@ -583,12 +583,12 @@ fn Read() { // CHECK:STDOUT: %Optional.Some: @IntRange.as.Iterate.impl.Next.%Optional.Some.type (%Optional.Some.type.20f) = struct_value () [symbolic = %Optional.Some (constants.%Optional.Some.dff)] // CHECK:STDOUT: %Optional.Some.specific_fn.loc15_42.2: = specific_function %Optional.Some, @Optional.Some(%Copy.facet.loc11_75.1) [symbolic = %Optional.Some.specific_fn.loc15_42.2 (constants.%Optional.Some.specific_fn)] // CHECK:STDOUT: %facet_value.loc12_7.3: %type_where = facet_value %Int.loc11_43.1, () [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc12_7.3) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.920)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc12_7.3) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.47b)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc11_43.1, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc12_7.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc12_7.3 (constants.%.4ec)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc12_7.3) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.16a)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @IntRange.as.Iterate.impl.Next.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.16a) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc12_7.3) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %.loc12_7.3: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc12_7.3 (constants.%.944)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc12_7.3) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @IntRange.as.Iterate.impl.Next.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.db2)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc12_7.3) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %Optional.None.type: type = fn_type @Optional.None, @Optional(%Copy.facet.loc11_75.1) [symbolic = %Optional.None.type (constants.%Optional.None.type.66e)] // CHECK:STDOUT: %Optional.None: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.66e) = struct_value () [symbolic = %Optional.None (constants.%Optional.None.016)] // CHECK:STDOUT: %Optional.None.specific_fn.loc17_42.2: = specific_function %Optional.None, @Optional.None(%Copy.facet.loc11_75.1) [symbolic = %Optional.None.specific_fn.loc17_42.2 (constants.%Optional.None.specific_fn)] @@ -665,12 +665,12 @@ fn Read() { // CHECK:STDOUT: %Optional.Some.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.671) = call %Optional.Some.specific_fn.loc15_42.1(%.loc15_48) to %.loc11_47.1 // CHECK:STDOUT: %facet_value.loc12_7.1: %type_where = facet_value constants.%Int.49d0e6.1, () [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc12_7.1: %type_where = converted constants.%Int.49d0e6.1, %facet_value.loc12_7.1 [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc12_7.1: @IntRange.as.Iterate.impl.Next.%.loc12_7.3 (%.4ec) = impl_witness_access constants.%Destroy.impl_witness.920, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] +// CHECK:STDOUT: %impl.elem0.loc12_7.1: @IntRange.as.Iterate.impl.Next.%.loc12_7.3 (%.944) = impl_witness_access constants.%Destroy.impl_witness.47b, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.db2)] // CHECK:STDOUT: %bound_method.loc12_7.1: = bound_method %value.var, %impl.elem0.loc12_7.1 -// CHECK:STDOUT: %specific_fn.loc12_7.1: = specific_function %impl.elem0.loc12_7.1, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %specific_fn.loc12_7.1: = specific_function %impl.elem0.loc12_7.1, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %bound_method.loc12_7.2: = bound_method %value.var, %specific_fn.loc12_7.1 // CHECK:STDOUT: %addr.loc12_7.1: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.784) = addr_of %value.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_7.1: init %empty_tuple.type = call %bound_method.loc12_7.2(%addr.loc12_7.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12_7.1: init %empty_tuple.type = call %bound_method.loc12_7.2(%addr.loc12_7.1) // CHECK:STDOUT: return %Optional.Some.call to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -690,12 +690,12 @@ fn Read() { // CHECK:STDOUT: %Optional.None.call: init @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.671) = call %Optional.None.specific_fn.loc17_42.1() to %.loc11_47.2 // CHECK:STDOUT: %facet_value.loc12_7.2: %type_where = facet_value constants.%Int.49d0e6.1, () [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc12_7.2: %type_where = converted constants.%Int.49d0e6.1, %facet_value.loc12_7.2 [symbolic = %facet_value.loc12_7.3 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc12_7.2: @IntRange.as.Iterate.impl.Next.%.loc12_7.3 (%.4ec) = impl_witness_access constants.%Destroy.impl_witness.920, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] +// CHECK:STDOUT: %impl.elem0.loc12_7.2: @IntRange.as.Iterate.impl.Next.%.loc12_7.3 (%.944) = impl_witness_access constants.%Destroy.impl_witness.47b, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.db2)] // CHECK:STDOUT: %bound_method.loc12_7.3: = bound_method %value.var, %impl.elem0.loc12_7.2 -// CHECK:STDOUT: %specific_fn.loc12_7.2: = specific_function %impl.elem0.loc12_7.2, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %specific_fn.loc12_7.2: = specific_function %impl.elem0.loc12_7.2, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %bound_method.loc12_7.4: = bound_method %value.var, %specific_fn.loc12_7.2 // CHECK:STDOUT: %addr.loc12_7.2: @IntRange.as.Iterate.impl.Next.%ptr.loc11_44.1 (%ptr.784) = addr_of %value.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_7.2: init %empty_tuple.type = call %bound_method.loc12_7.4(%addr.loc12_7.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12_7.2: init %empty_tuple.type = call %bound_method.loc12_7.4(%addr.loc12_7.2) // CHECK:STDOUT: return %Optional.None.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -880,10 +880,10 @@ fn Read() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %IntRange.365, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f39: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0ed: %DestroyT.as_type.as.Destroy.impl.Op.type.f39 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.993: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.45c: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.993 = struct_value () [concrete] // CHECK:STDOUT: %ptr.049: type = ptr_type %IntRange.365 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0ed, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.45c, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -986,11 +986,11 @@ fn Read() { // CHECK:STDOUT: %x: ref %IntRange.365 = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%IntRange.365, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_3.2: %type_where = converted constants.%IntRange.365, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.0ed -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.0ed, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc6_3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.45c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.45c, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc6_3: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.049 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc6_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/basic.carbon b/toolchain/check/testdata/for/basic.carbon index c1cbfb7b81ff8..61a11df19e444 100644 --- a/toolchain/check/testdata/for/basic.carbon +++ b/toolchain/check/testdata/for/basic.carbon @@ -97,15 +97,15 @@ fn Run() { // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.136: %type_where = facet_value %Optional.68c, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9ac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.136) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b5c: %DestroyT.as_type.as.Destroy.impl.Op.type.9ac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.979: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.136) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.fea: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.979 = struct_value () [concrete] // CHECK:STDOUT: %ptr.17e: type = ptr_type %Optional.68c [concrete] // CHECK:STDOUT: %facet_value.441: %type_where = facet_value %TrivialRange, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d73: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.441) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.9e0: %DestroyT.as_type.as.Destroy.impl.Op.type.d73 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.01c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.441) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.72a: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.01c = struct_value () [concrete] // CHECK:STDOUT: %ptr.41d: type = ptr_type %TrivialRange [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Copy.impl.Op.type: type = fn_type @empty_tuple.type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Copy.impl.Op: %empty_tuple.type.as.Copy.impl.Op.type = struct_value () [concrete] @@ -184,32 +184,32 @@ fn Run() { // CHECK:STDOUT: %AfterLoop.call: init %empty_tuple.type = call %AfterLoop.ref() // CHECK:STDOUT: %facet_value.loc18_35.1: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc18_35.12: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_35.1 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_35.1: = bound_method %.loc18_35.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18_35.1: = bound_method %.loc18_35.10, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_35.5: = bound_method %.loc18_35.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc18_35.5: = bound_method %.loc18_35.10, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc18_35.2: %ptr.843 = addr_of %.loc18_35.10 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_35.1: init %empty_tuple.type = call %bound_method.loc18_35.5(%addr.loc18_35.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18_35.1: init %empty_tuple.type = call %bound_method.loc18_35.5(%addr.loc18_35.2) // CHECK:STDOUT: %facet_value.loc18_35.2: %type_where = facet_value constants.%Optional.68c, () [concrete = constants.%facet_value.136] // CHECK:STDOUT: %.loc18_35.13: %type_where = converted constants.%Optional.68c, %facet_value.loc18_35.2 [concrete = constants.%facet_value.136] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_35.2: = bound_method %.loc18_35.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b5c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18_35.2: = bound_method %.loc18_35.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fea // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_35.6: = bound_method %.loc18_35.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc18_35.6: = bound_method %.loc18_35.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18_35.3: %ptr.17e = addr_of %.loc18_35.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_35.2: init %empty_tuple.type = call %bound_method.loc18_35.6(%addr.loc18_35.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18_35.2: init %empty_tuple.type = call %bound_method.loc18_35.6(%addr.loc18_35.3) // CHECK:STDOUT: %facet_value.loc18_35.3: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc18_35.14: %type_where = converted constants.%empty_tuple.type, %facet_value.loc18_35.3 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_35.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18_35.3: = bound_method %var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_35.7: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc18_35.7: = bound_method %var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc18_35.4: %ptr.843 = addr_of %var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_35.3: init %empty_tuple.type = call %bound_method.loc18_35.7(%addr.loc18_35.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18_35.3: init %empty_tuple.type = call %bound_method.loc18_35.7(%addr.loc18_35.4) // CHECK:STDOUT: %facet_value.loc18_18: %type_where = facet_value constants.%TrivialRange, () [concrete = constants.%facet_value.441] // CHECK:STDOUT: %.loc18_18.5: %type_where = converted constants.%TrivialRange, %facet_value.loc18_18 [concrete = constants.%facet_value.441] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18_18: = bound_method %.loc18_18.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.9e0 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18_18: = bound_method %.loc18_18.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.72a // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc18_18: = bound_method %.loc18_18.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc18_18: = bound_method %.loc18_18.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc18_18: %ptr.41d = addr_of %.loc18_18.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18_18: init %empty_tuple.type = call %bound_method.loc18_18(%addr.loc18_18) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18_18: init %empty_tuple.type = call %bound_method.loc18_18(%addr.loc18_18) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/pattern.carbon b/toolchain/check/testdata/for/pattern.carbon index 78b31723e08cb..ab6017d7316f1 100644 --- a/toolchain/check/testdata/for/pattern.carbon +++ b/toolchain/check/testdata/for/pattern.carbon @@ -169,19 +169,19 @@ fn Run() { // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %facet_value.94b: %type_where = facet_value %Optional.47f, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.94b) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a7d: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.94b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.22f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a5d = struct_value () [concrete] // CHECK:STDOUT: %ptr.c56: type = ptr_type %Optional.47f [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.596: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b6d: %type_where = facet_value %EmptyRange.ab3, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e27: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a3e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.5f4: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a3e = struct_value () [concrete] // CHECK:STDOUT: %ptr.43f: type = ptr_type %EmptyRange.ab3 [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] @@ -270,32 +270,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_36.1: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc10_36.12: %type_where = converted constants.%C, %facet_value.loc10_36.1 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_36.1: = bound_method %.loc10_36.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_36.1: = bound_method %.loc10_36.10, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_36.7: = bound_method %.loc10_36.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_36.7: = bound_method %.loc10_36.10, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_36.2: %ptr.019 = addr_of %.loc10_36.10 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_36.1: init %empty_tuple.type = call %bound_method.loc10_36.7(%addr.loc10_36.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_36.1: init %empty_tuple.type = call %bound_method.loc10_36.7(%addr.loc10_36.2) // CHECK:STDOUT: %facet_value.loc10_36.2: %type_where = facet_value constants.%Optional.47f, () [concrete = constants.%facet_value.94b] // CHECK:STDOUT: %.loc10_36.13: %type_where = converted constants.%Optional.47f, %facet_value.loc10_36.2 [concrete = constants.%facet_value.94b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_36.2: = bound_method %.loc10_36.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.a7d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_36.2: = bound_method %.loc10_36.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.22f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_36.8: = bound_method %.loc10_36.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_36.8: = bound_method %.loc10_36.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_36.3: %ptr.c56 = addr_of %.loc10_36.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_36.2: init %empty_tuple.type = call %bound_method.loc10_36.8(%addr.loc10_36.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_36.2: init %empty_tuple.type = call %bound_method.loc10_36.8(%addr.loc10_36.3) // CHECK:STDOUT: %facet_value.loc10_36.3: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_36.14: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_36.3 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_36.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_36.3: = bound_method %var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_36.9: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_36.9: = bound_method %var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_36.4: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_36.3: init %empty_tuple.type = call %bound_method.loc10_36.9(%addr.loc10_36.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_36.3: init %empty_tuple.type = call %bound_method.loc10_36.9(%addr.loc10_36.4) // CHECK:STDOUT: %facet_value.loc10_35: %type_where = facet_value constants.%EmptyRange.ab3, () [concrete = constants.%facet_value.b6d] // CHECK:STDOUT: %.loc10_35.5: %type_where = converted constants.%EmptyRange.ab3, %facet_value.loc10_35 [concrete = constants.%facet_value.b6d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_35: = bound_method %.loc10_35.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e27 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_35: = bound_method %.loc10_35.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f4 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_35: = bound_method %.loc10_35.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc10_35: = bound_method %.loc10_35.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc10_35: %ptr.43f = addr_of %.loc10_35.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_35: init %empty_tuple.type = call %bound_method.loc10_35(%addr.loc10_35) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_35: init %empty_tuple.type = call %bound_method.loc10_35(%addr.loc10_35) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -352,18 +352,18 @@ fn Run() { // CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.71a, @Optional.Get(%Copy.facet) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.94b: %type_where = facet_value %Optional.47f, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.94b) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.a7d: %DestroyT.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.94b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.22f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a5d = struct_value () [concrete] // CHECK:STDOUT: %ptr.c56: type = ptr_type %Optional.47f [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.596: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b6d: %type_where = facet_value %EmptyRange.ab3, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e27: %DestroyT.as_type.as.Destroy.impl.Op.type.8c7 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a3e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.b6d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.5f4: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a3e = struct_value () [concrete] // CHECK:STDOUT: %ptr.43f: type = ptr_type %EmptyRange.ab3 [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] @@ -454,32 +454,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc10_8.2: %type_where = converted constants.%C, %facet_value.loc10_8 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_8: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_8: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_8: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_8: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_8: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_8: init %empty_tuple.type = call %bound_method.loc10_8(%addr.loc10_8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_8: init %empty_tuple.type = call %bound_method.loc10_8(%addr.loc10_8) // CHECK:STDOUT: %facet_value.loc10_40.1: %type_where = facet_value constants.%Optional.47f, () [concrete = constants.%facet_value.94b] // CHECK:STDOUT: %.loc10_40.9: %type_where = converted constants.%Optional.47f, %facet_value.loc10_40.1 [concrete = constants.%facet_value.94b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_40.1: = bound_method %.loc10_40.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.a7d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_40.1: = bound_method %.loc10_40.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.22f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_40.7: = bound_method %.loc10_40.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_40.7: = bound_method %.loc10_40.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_40.2: %ptr.c56 = addr_of %.loc10_40.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_40.1: init %empty_tuple.type = call %bound_method.loc10_40.7(%addr.loc10_40.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_40.1: init %empty_tuple.type = call %bound_method.loc10_40.7(%addr.loc10_40.2) // CHECK:STDOUT: %facet_value.loc10_40.2: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_40.10: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_40.2 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_40.2: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_40.2: = bound_method %var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_40.8: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_40.8: = bound_method %var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_40.3: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_40.2: init %empty_tuple.type = call %bound_method.loc10_40.8(%addr.loc10_40.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_40.2: init %empty_tuple.type = call %bound_method.loc10_40.8(%addr.loc10_40.3) // CHECK:STDOUT: %facet_value.loc10_39: %type_where = facet_value constants.%EmptyRange.ab3, () [concrete = constants.%facet_value.b6d] // CHECK:STDOUT: %.loc10_39.5: %type_where = converted constants.%EmptyRange.ab3, %facet_value.loc10_39 [concrete = constants.%facet_value.b6d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_39: = bound_method %.loc10_39.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e27 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_39: = bound_method %.loc10_39.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5f4 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_39: = bound_method %.loc10_39.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc10_39: = bound_method %.loc10_39.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc10_39: %ptr.43f = addr_of %.loc10_39.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_39: init %empty_tuple.type = call %bound_method.loc10_39(%addr.loc10_39) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_39: init %empty_tuple.type = call %bound_method.loc10_39(%addr.loc10_39) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -503,17 +503,17 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.Make.b34: %EmptyRange.Make.type.838 = struct_value () [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %U: %Copy.type = bind_symbolic_name U, 1 [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.45a: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.401(%T.7dd, %U) [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.411: %tuple.type.as.Copy.impl.Op.type.45a = struct_value () [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.b6b: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.bca(%T.7dd, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.b8c: %tuple.type.as.Copy.impl.Op.type.b6b = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.1f3: = impl_witness imports.%Copy.impl_witness_table.416 [concrete] // CHECK:STDOUT: %Copy.facet.559: %Copy.type = facet_value bool, (%Copy.impl_witness.1f3) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.272: = impl_witness imports.%Copy.impl_witness_table.808, @tuple.type.as.Copy.impl.401(%Copy.facet.559, %Copy.facet.559) [concrete] -// CHECK:STDOUT: %Copy.facet.bd7: %Copy.type = facet_value %tuple.type.784, (%Copy.impl_witness.272) [concrete] -// CHECK:STDOUT: %EmptyRange.9df: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.84c: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.dc1: %EmptyRange.Make.type.84c = struct_value () [concrete] +// CHECK:STDOUT: %Copy.impl_witness.f89: = impl_witness imports.%Copy.impl_witness_table.179, @tuple.type.as.Copy.impl.bca(%Copy.facet.559, %Copy.facet.559) [concrete] +// CHECK:STDOUT: %Copy.facet.46f: %Copy.type = facet_value %tuple.type.784, (%Copy.impl_witness.f89) [concrete] +// CHECK:STDOUT: %EmptyRange.689: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.d30: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.7b4: %EmptyRange.Make.type.d30 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.dc1, @EmptyRange.Make(%Copy.facet.bd7) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.7b4, @EmptyRange.Make(%Copy.facet.46f) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %Iterate.NewCursor.type: type = fn_type @Iterate.NewCursor [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.22a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.7dd) [symbolic] @@ -524,40 +524,40 @@ fn Run() { // CHECK:STDOUT: %Optional.HasValue.d64: %Optional.HasValue.type.5d5 = struct_value () [symbolic] // CHECK:STDOUT: %Optional.Get.type.91e: type = fn_type @Optional.Get, @Optional(%T.7dd) [symbolic] // CHECK:STDOUT: %Optional.Get.4d9: %Optional.Get.type.91e = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.b98: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.867: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.c2f: %EmptyRange.as.Iterate.impl.NewCursor.type.867 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.6f6: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.3cd: %EmptyRange.as.Iterate.impl.Next.type.6f6 = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.9df, (%Iterate.impl_witness.b98) [concrete] -// CHECK:STDOUT: %.a03: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.c2f, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.bd7) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.da5: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.9d7: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.1f8: %EmptyRange.as.Iterate.impl.NewCursor.type.9d7 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.5f0: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.8be: %EmptyRange.as.Iterate.impl.Next.type.5f0 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.689, (%Iterate.impl_witness.da5) [concrete] +// CHECK:STDOUT: %.85e: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.1f8, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.46f) [concrete] // CHECK:STDOUT: %Iterate.Next.type: type = fn_type @Iterate.Next [concrete] -// CHECK:STDOUT: %.d03c: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.82d: type = class_type @Optional, @Optional(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.3cd, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.60f: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %Optional.HasValue.efe: %Optional.HasValue.type.60f = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.7f4: type = fn_type @Optional.Get, @Optional(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %Optional.Get.3c3: %Optional.Get.type.7f4 = struct_value () [concrete] +// CHECK:STDOUT: %.fe7: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.b7e: type = class_type @Optional, @Optional(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.8be, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.f4b: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %Optional.HasValue.339: %Optional.HasValue.type.f4b = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.e6e: type = fn_type @Optional.Get, @Optional(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %Optional.Get.5e8: %Optional.Get.type.e6e = struct_value () [concrete] // CHECK:STDOUT: %ptr.b85: type = ptr_type %tuple.type.784 [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.efe, @Optional.HasValue(%Copy.facet.bd7) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.3c3, @Optional.Get(%Copy.facet.bd7) [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.339, @Optional.HasValue(%Copy.facet.46f) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.5e8, @Optional.Get(%Copy.facet.46f) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d7c: %type_where = facet_value %tuple.type.784, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fa2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d7c) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b18: %DestroyT.as_type.as.Destroy.impl.Op.type.fa2 = struct_value () [concrete] -// CHECK:STDOUT: %facet_value.33f: %type_where = facet_value %Optional.82d, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1dd: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.33f) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.961: %DestroyT.as_type.as.Destroy.impl.Op.type.1dd = struct_value () [concrete] -// CHECK:STDOUT: %ptr.e7c: type = ptr_type %Optional.82d [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea5: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d7c) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f9f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea5 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.871: %type_where = facet_value %Optional.b7e, () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a01: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.871) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.cdc: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a01 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.b9f: type = ptr_type %Optional.b7e [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] -// CHECK:STDOUT: %facet_value.83c: %type_where = facet_value %EmptyRange.9df, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.5b5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.83c) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b0d: %DestroyT.as_type.as.Destroy.impl.Op.type.5b5 = struct_value () [concrete] -// CHECK:STDOUT: %ptr.dd0: type = ptr_type %EmptyRange.9df [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.596: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.61e: %type_where = facet_value %EmptyRange.689, () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f03: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.61e) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.73c: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f03 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.ac0: type = ptr_type %EmptyRange.689 [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op.type: type = fn_type @bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %bool.as.Copy.impl.Op: %bool.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -565,8 +565,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.8f2f: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.838) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.b34)] -// CHECK:STDOUT: %Core.import_ref.bad: @tuple.type.as.Copy.impl.401.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.45a) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.401.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.411)] -// CHECK:STDOUT: %Copy.impl_witness_table.808 = impl_witness_table (%Core.import_ref.bad), @tuple.type.as.Copy.impl.401 [concrete] +// CHECK:STDOUT: %Core.import_ref.ae0: @tuple.type.as.Copy.impl.bca.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.b6b) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.bca.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.b8c)] +// CHECK:STDOUT: %Copy.impl_witness_table.179 = impl_witness_table (%Core.import_ref.ae0), @tuple.type.as.Copy.impl.bca [concrete] // CHECK:STDOUT: %Core.import_ref.afa: %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.416 = impl_witness_table (%Core.import_ref.afa), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: %Main.import_ref.4d9 = import_ref Main//empty_range, loc7_68, unloaded @@ -597,20 +597,20 @@ fn Run() { // CHECK:STDOUT: %.loc10_53.5: %Copy.type = converted bool, %Copy.facet.loc10_53.1 [concrete = constants.%Copy.facet.559] // CHECK:STDOUT: %Copy.facet.loc10_53.2: %Copy.type = facet_value bool, (constants.%Copy.impl_witness.1f3) [concrete = constants.%Copy.facet.559] // CHECK:STDOUT: %.loc10_53.6: %Copy.type = converted bool, %Copy.facet.loc10_53.2 [concrete = constants.%Copy.facet.559] -// CHECK:STDOUT: %Copy.facet.loc10_53.3: %Copy.type = facet_value constants.%tuple.type.784, (constants.%Copy.impl_witness.272) [concrete = constants.%Copy.facet.bd7] -// CHECK:STDOUT: %.loc10_53.7: %Copy.type = converted %.loc10_52, %Copy.facet.loc10_53.3 [concrete = constants.%Copy.facet.bd7] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.bd7) [concrete = constants.%EmptyRange.9df] -// CHECK:STDOUT: %.loc10_54: %EmptyRange.Make.type.84c = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet.bd7) [concrete = constants.%EmptyRange.Make.dc1] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.84c = name_ref Make, %.loc10_54 [concrete = constants.%EmptyRange.Make.dc1] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.bd7) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_60.1: ref %EmptyRange.9df = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.9df = call %EmptyRange.Make.specific_fn() to %.loc10_60.1 -// CHECK:STDOUT: %.loc10_60.2: ref %EmptyRange.9df = temporary %.loc10_60.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.a03 = impl_witness_access constants.%Iterate.impl_witness.b98, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.c2f] +// CHECK:STDOUT: %Copy.facet.loc10_53.3: %Copy.type = facet_value constants.%tuple.type.784, (constants.%Copy.impl_witness.f89) [concrete = constants.%Copy.facet.46f] +// CHECK:STDOUT: %.loc10_53.7: %Copy.type = converted %.loc10_52, %Copy.facet.loc10_53.3 [concrete = constants.%Copy.facet.46f] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.46f) [concrete = constants.%EmptyRange.689] +// CHECK:STDOUT: %.loc10_54: %EmptyRange.Make.type.d30 = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet.46f) [concrete = constants.%EmptyRange.Make.7b4] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.d30 = name_ref Make, %.loc10_54 [concrete = constants.%EmptyRange.Make.7b4] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.46f) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %.loc10_60.1: ref %EmptyRange.689 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.689 = call %EmptyRange.Make.specific_fn() to %.loc10_60.1 +// CHECK:STDOUT: %.loc10_60.2: ref %EmptyRange.689 = temporary %.loc10_60.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.85e = impl_witness_access constants.%Iterate.impl_witness.da5, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.1f8] // 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.bd7) [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.46f) [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.9df = bind_value %.loc10_60.2 +// CHECK:STDOUT: %.loc10_60.3: %EmptyRange.689 = bind_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 @@ -618,33 +618,33 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr.loc10_61.1: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.d03c = impl_witness_access constants.%Iterate.impl_witness.b98, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.3cd] +// CHECK:STDOUT: %impl.elem3: %.fe7 = impl_witness_access constants.%Iterate.impl_witness.da5, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.8be] // 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.bd7) [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.46f) [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.82d = temporary_storage -// CHECK:STDOUT: %.loc10_60.4: %EmptyRange.9df = bind_value %.loc10_60.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.82d = call %bound_method.loc10_61.4(%.loc10_60.4, %addr.loc10_61.1) to %.loc10_61.1 -// CHECK:STDOUT: %.loc10_61.2: ref %Optional.82d = temporary %.loc10_61.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_61.3: %Optional.HasValue.type.60f = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet.bd7) [concrete = constants.%Optional.HasValue.efe] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.60f = name_ref HasValue, %.loc10_61.3 [concrete = constants.%Optional.HasValue.efe] +// CHECK:STDOUT: %.loc10_61.1: ref %Optional.b7e = temporary_storage +// CHECK:STDOUT: %.loc10_60.4: %EmptyRange.689 = bind_value %.loc10_60.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.b7e = call %bound_method.loc10_61.4(%.loc10_60.4, %addr.loc10_61.1) to %.loc10_61.1 +// CHECK:STDOUT: %.loc10_61.2: ref %Optional.b7e = temporary %.loc10_61.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_61.3: %Optional.HasValue.type.f4b = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet.46f) [concrete = constants.%Optional.HasValue.339] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.f4b = name_ref HasValue, %.loc10_61.3 [concrete = constants.%Optional.HasValue.339] // 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.bd7) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.46f) [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.82d = bind_value %.loc10_61.2 +// CHECK:STDOUT: %.loc10_61.4: %Optional.b7e = bind_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.7f4 = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet.bd7) [concrete = constants.%Optional.Get.3c3] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.7f4 = name_ref Get, %.loc10_61.7 [concrete = constants.%Optional.Get.3c3] +// CHECK:STDOUT: %.loc10_61.7: %Optional.Get.type.e6e = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet.46f) [concrete = constants.%Optional.Get.5e8] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.e6e = name_ref Get, %.loc10_61.7 [concrete = constants.%Optional.Get.5e8] // 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.bd7) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.46f) [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.82d = bind_value %.loc10_61.2 +// CHECK:STDOUT: %.loc10_61.9: %Optional.b7e = bind_value %.loc10_61.2 // CHECK:STDOUT: %Optional.Get.call: init %tuple.type.784 = call %bound_method.loc10_61.6(%.loc10_61.9) to %.loc10_61.8 // 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 @@ -672,32 +672,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_61.1: %type_where = facet_value constants.%tuple.type.784, () [concrete = constants.%facet_value.d7c] // CHECK:STDOUT: %.loc10_61.13: %type_where = converted constants.%tuple.type.784, %facet_value.loc10_61.1 [concrete = constants.%facet_value.d7c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_61.1: = bound_method %.loc10_61.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.b18 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_61.1: = bound_method %.loc10_61.10, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f9f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_61.7: = bound_method %.loc10_61.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_61.7: = bound_method %.loc10_61.10, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_61.2: %ptr.b85 = addr_of %.loc10_61.10 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_61.1: init %empty_tuple.type = call %bound_method.loc10_61.7(%addr.loc10_61.2) -// CHECK:STDOUT: %facet_value.loc10_61.2: %type_where = facet_value constants.%Optional.82d, () [concrete = constants.%facet_value.33f] -// CHECK:STDOUT: %.loc10_61.14: %type_where = converted constants.%Optional.82d, %facet_value.loc10_61.2 [concrete = constants.%facet_value.33f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_61.2: = bound_method %.loc10_61.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.961 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_61.1: init %empty_tuple.type = call %bound_method.loc10_61.7(%addr.loc10_61.2) +// CHECK:STDOUT: %facet_value.loc10_61.2: %type_where = facet_value constants.%Optional.b7e, () [concrete = constants.%facet_value.871] +// CHECK:STDOUT: %.loc10_61.14: %type_where = converted constants.%Optional.b7e, %facet_value.loc10_61.2 [concrete = constants.%facet_value.871] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_61.2: = bound_method %.loc10_61.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cdc // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_61.8: = bound_method %.loc10_61.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 -// CHECK:STDOUT: %addr.loc10_61.3: %ptr.e7c = addr_of %.loc10_61.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_61.2: init %empty_tuple.type = call %bound_method.loc10_61.8(%addr.loc10_61.3) +// CHECK:STDOUT: %bound_method.loc10_61.8: = bound_method %.loc10_61.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %addr.loc10_61.3: %ptr.b9f = addr_of %.loc10_61.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_61.2: init %empty_tuple.type = call %bound_method.loc10_61.8(%addr.loc10_61.3) // CHECK:STDOUT: %facet_value.loc10_61.3: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_61.15: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_61.3 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_61.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_61.3: = bound_method %var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_61.9: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_61.9: = bound_method %var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_61.4: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_61.3: init %empty_tuple.type = call %bound_method.loc10_61.9(%addr.loc10_61.4) -// CHECK:STDOUT: %facet_value.loc10_60: %type_where = facet_value constants.%EmptyRange.9df, () [concrete = constants.%facet_value.83c] -// CHECK:STDOUT: %.loc10_60.5: %type_where = converted constants.%EmptyRange.9df, %facet_value.loc10_60 [concrete = constants.%facet_value.83c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_60: = bound_method %.loc10_60.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b0d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_61.3: init %empty_tuple.type = call %bound_method.loc10_61.9(%addr.loc10_61.4) +// CHECK:STDOUT: %facet_value.loc10_60: %type_where = facet_value constants.%EmptyRange.689, () [concrete = constants.%facet_value.61e] +// CHECK:STDOUT: %.loc10_60.5: %type_where = converted constants.%EmptyRange.689, %facet_value.loc10_60 [concrete = constants.%facet_value.61e] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_60: = bound_method %.loc10_60.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.73c // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_60: = bound_method %.loc10_60.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 -// CHECK:STDOUT: %addr.loc10_60: %ptr.dd0 = addr_of %.loc10_60.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_60: init %empty_tuple.type = call %bound_method.loc10_60(%addr.loc10_60) +// CHECK:STDOUT: %bound_method.loc10_60: = bound_method %.loc10_60.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %addr.loc10_60: %ptr.ac0 = addr_of %.loc10_60.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_60: init %empty_tuple.type = call %bound_method.loc10_60(%addr.loc10_60) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -721,16 +721,16 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.Make.b34: %EmptyRange.Make.type.838 = struct_value () [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %U: %Copy.type = bind_symbolic_name U, 1 [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.45a: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.401(%T.7dd, %U) [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.411: %tuple.type.as.Copy.impl.Op.type.45a = struct_value () [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.b6b: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.bca(%T.7dd, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.b8c: %tuple.type.as.Copy.impl.Op.type.b6b = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.1de: = impl_witness imports.%Copy.impl_witness_table.2c6 [concrete] // CHECK:STDOUT: %Copy.facet.762: %Copy.type = facet_value %C, (%Copy.impl_witness.1de) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.34f: = impl_witness imports.%Copy.impl_witness_table.808, @tuple.type.as.Copy.impl.401(%Copy.facet.762, %Copy.facet.762) [concrete] -// CHECK:STDOUT: %Copy.facet.ee6: %Copy.type = facet_value %tuple.type.56b, (%Copy.impl_witness.34f) [concrete] -// CHECK:STDOUT: %EmptyRange.f6a: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.8d2: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.a16: %EmptyRange.Make.type.8d2 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.a16, @EmptyRange.Make(%Copy.facet.ee6) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.cde: = impl_witness imports.%Copy.impl_witness_table.179, @tuple.type.as.Copy.impl.bca(%Copy.facet.762, %Copy.facet.762) [concrete] +// CHECK:STDOUT: %Copy.facet.307: %Copy.type = facet_value %tuple.type.56b, (%Copy.impl_witness.cde) [concrete] +// CHECK:STDOUT: %EmptyRange.b32: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.d9c: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.c75: %EmptyRange.Make.type.d9c = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.c75, @EmptyRange.Make(%Copy.facet.307) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %Iterate.NewCursor.type: type = fn_type @Iterate.NewCursor [concrete] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.22a: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.7dd) [symbolic] @@ -741,40 +741,40 @@ fn Run() { // CHECK:STDOUT: %Optional.HasValue.d64: %Optional.HasValue.type.5d5 = struct_value () [symbolic] // CHECK:STDOUT: %Optional.Get.type.91e: type = fn_type @Optional.Get, @Optional(%T.7dd) [symbolic] // CHECK:STDOUT: %Optional.Get.4d9: %Optional.Get.type.91e = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.60e: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.2e5: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.2ad: %EmptyRange.as.Iterate.impl.NewCursor.type.2e5 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.84b: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.1d9: %EmptyRange.as.Iterate.impl.Next.type.84b = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.f6a, (%Iterate.impl_witness.60e) [concrete] -// CHECK:STDOUT: %.cf9: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.2ad, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.ee6) [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.2ed: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.ae0: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.e68: %EmptyRange.as.Iterate.impl.NewCursor.type.ae0 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.0d7: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.979: %EmptyRange.as.Iterate.impl.Next.type.0d7 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.b32, (%Iterate.impl_witness.2ed) [concrete] +// CHECK:STDOUT: %.414: type = fn_type_with_self_type %Iterate.NewCursor.type, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.e68, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.307) [concrete] // CHECK:STDOUT: %Iterate.Next.type: type = fn_type @Iterate.Next [concrete] -// CHECK:STDOUT: %.8f0: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.696: type = class_type @Optional, @Optional(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.1d9, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.d29: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %Optional.HasValue.4c8: %Optional.HasValue.type.d29 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.cc9: type = fn_type @Optional.Get, @Optional(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %Optional.Get.f3d: %Optional.Get.type.cc9 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.4c8, @Optional.HasValue(%Copy.facet.ee6) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.f3d, @Optional.Get(%Copy.facet.ee6) [concrete] +// CHECK:STDOUT: %.f02: type = fn_type_with_self_type %Iterate.Next.type, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.654: type = class_type @Optional, @Optional(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.979, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.a71: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %Optional.HasValue.2f2: %Optional.HasValue.type.a71 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.bc3: type = fn_type @Optional.Get, @Optional(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %Optional.Get.7b4: %Optional.Get.type.bc3 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.2f2, @Optional.HasValue(%Copy.facet.307) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.7b4, @Optional.Get(%Copy.facet.307) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c79: %type_where = facet_value %tuple.type.56b, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c79) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.40e: %DestroyT.as_type.as.Destroy.impl.Op.type.bf8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.dbb: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c79) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f17: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.dbb = struct_value () [concrete] // CHECK:STDOUT: %ptr.9f0: type = ptr_type %tuple.type.56b [concrete] -// CHECK:STDOUT: %facet_value.44a: %type_where = facet_value %Optional.696, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ab: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.44a) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.6ab = struct_value () [concrete] -// CHECK:STDOUT: %ptr.676: type = ptr_type %Optional.696 [concrete] +// CHECK:STDOUT: %facet_value.4cb: %type_where = facet_value %Optional.654, () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.383: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4cb) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.169: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.383 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.0ac: type = ptr_type %Optional.654 [concrete] // CHECK:STDOUT: %facet_value.7c2: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] -// CHECK:STDOUT: %facet_value.c8d: %type_where = facet_value %EmptyRange.f6a, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c8d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.000: %DestroyT.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] -// CHECK:STDOUT: %ptr.1e6: type = ptr_type %EmptyRange.f6a [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7c2) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.596: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.2ad: %type_where = facet_value %EmptyRange.b32, () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.417: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2ad) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.4f3: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.417 = struct_value () [concrete] +// CHECK:STDOUT: %ptr.4b6: type = ptr_type %EmptyRange.b32 [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op.type: type = fn_type @C.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %C.as.Copy.impl.Op: %C.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -783,8 +783,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.8f2f: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.838) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.b34)] -// CHECK:STDOUT: %Core.import_ref.bad: @tuple.type.as.Copy.impl.401.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.45a) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.401.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.411)] -// CHECK:STDOUT: %Copy.impl_witness_table.808 = impl_witness_table (%Core.import_ref.bad), @tuple.type.as.Copy.impl.401 [concrete] +// CHECK:STDOUT: %Core.import_ref.ae0: @tuple.type.as.Copy.impl.bca.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.b6b) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.bca.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.b8c)] +// CHECK:STDOUT: %Copy.impl_witness_table.179 = impl_witness_table (%Core.import_ref.ae0), @tuple.type.as.Copy.impl.bca [concrete] // CHECK:STDOUT: %Main.import_ref.157: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_33, loaded [concrete = constants.%C.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.2c6 = impl_witness_table (%Main.import_ref.157), @C.as.Copy.impl [concrete] // CHECK:STDOUT: %Main.import_ref.4d9 = import_ref Main//empty_range, loc7_68, unloaded @@ -811,20 +811,20 @@ fn Run() { // CHECK:STDOUT: %.loc10_41.1: %Copy.type = converted constants.%C, %Copy.facet.loc10_41.1 [concrete = constants.%Copy.facet.762] // CHECK:STDOUT: %Copy.facet.loc10_41.2: %Copy.type = facet_value constants.%C, (constants.%Copy.impl_witness.1de) [concrete = constants.%Copy.facet.762] // CHECK:STDOUT: %.loc10_41.2: %Copy.type = converted constants.%C, %Copy.facet.loc10_41.2 [concrete = constants.%Copy.facet.762] -// CHECK:STDOUT: %Copy.facet.loc10_41.3: %Copy.type = facet_value constants.%tuple.type.56b, (constants.%Copy.impl_witness.34f) [concrete = constants.%Copy.facet.ee6] -// CHECK:STDOUT: %.loc10_41.3: %Copy.type = converted %.loc10_40, %Copy.facet.loc10_41.3 [concrete = constants.%Copy.facet.ee6] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.ee6) [concrete = constants.%EmptyRange.f6a] -// CHECK:STDOUT: %.loc10_42: %EmptyRange.Make.type.8d2 = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet.ee6) [concrete = constants.%EmptyRange.Make.a16] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.8d2 = name_ref Make, %.loc10_42 [concrete = constants.%EmptyRange.Make.a16] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.ee6) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_48.1: ref %EmptyRange.f6a = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.f6a = call %EmptyRange.Make.specific_fn() to %.loc10_48.1 -// CHECK:STDOUT: %.loc10_48.2: ref %EmptyRange.f6a = temporary %.loc10_48.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.cf9 = impl_witness_access constants.%Iterate.impl_witness.60e, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.2ad] +// CHECK:STDOUT: %Copy.facet.loc10_41.3: %Copy.type = facet_value constants.%tuple.type.56b, (constants.%Copy.impl_witness.cde) [concrete = constants.%Copy.facet.307] +// CHECK:STDOUT: %.loc10_41.3: %Copy.type = converted %.loc10_40, %Copy.facet.loc10_41.3 [concrete = constants.%Copy.facet.307] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.307) [concrete = constants.%EmptyRange.b32] +// CHECK:STDOUT: %.loc10_42: %EmptyRange.Make.type.d9c = specific_constant imports.%Main.import_ref.8f2f, @EmptyRange(constants.%Copy.facet.307) [concrete = constants.%EmptyRange.Make.c75] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.d9c = name_ref Make, %.loc10_42 [concrete = constants.%EmptyRange.Make.c75] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.307) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %.loc10_48.1: ref %EmptyRange.b32 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.b32 = call %EmptyRange.Make.specific_fn() to %.loc10_48.1 +// CHECK:STDOUT: %.loc10_48.2: ref %EmptyRange.b32 = temporary %.loc10_48.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.414 = impl_witness_access constants.%Iterate.impl_witness.2ed, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.e68] // 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.ee6) [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.307) [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.f6a = bind_value %.loc10_48.2 +// CHECK:STDOUT: %.loc10_48.3: %EmptyRange.b32 = bind_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 @@ -832,33 +832,33 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr.loc10_49.1: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.8f0 = impl_witness_access constants.%Iterate.impl_witness.60e, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.1d9] +// CHECK:STDOUT: %impl.elem3: %.f02 = impl_witness_access constants.%Iterate.impl_witness.2ed, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.979] // 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.ee6) [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.307) [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.696 = temporary_storage -// CHECK:STDOUT: %.loc10_48.4: %EmptyRange.f6a = bind_value %.loc10_48.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.696 = call %bound_method.loc10_49.4(%.loc10_48.4, %addr.loc10_49.1) to %.loc10_49.1 -// CHECK:STDOUT: %.loc10_49.2: ref %Optional.696 = temporary %.loc10_49.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_49.3: %Optional.HasValue.type.d29 = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet.ee6) [concrete = constants.%Optional.HasValue.4c8] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.d29 = name_ref HasValue, %.loc10_49.3 [concrete = constants.%Optional.HasValue.4c8] +// CHECK:STDOUT: %.loc10_49.1: ref %Optional.654 = temporary_storage +// CHECK:STDOUT: %.loc10_48.4: %EmptyRange.b32 = bind_value %.loc10_48.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.654 = call %bound_method.loc10_49.4(%.loc10_48.4, %addr.loc10_49.1) to %.loc10_49.1 +// CHECK:STDOUT: %.loc10_49.2: ref %Optional.654 = temporary %.loc10_49.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_49.3: %Optional.HasValue.type.a71 = specific_constant imports.%Main.import_ref.cfa, @Optional(constants.%Copy.facet.307) [concrete = constants.%Optional.HasValue.2f2] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.a71 = name_ref HasValue, %.loc10_49.3 [concrete = constants.%Optional.HasValue.2f2] // 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.ee6) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.307) [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.696 = bind_value %.loc10_49.2 +// CHECK:STDOUT: %.loc10_49.4: %Optional.654 = bind_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.cc9 = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet.ee6) [concrete = constants.%Optional.Get.f3d] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.cc9 = name_ref Get, %.loc10_49.7 [concrete = constants.%Optional.Get.f3d] +// CHECK:STDOUT: %.loc10_49.7: %Optional.Get.type.bc3 = specific_constant imports.%Main.import_ref.01a, @Optional(constants.%Copy.facet.307) [concrete = constants.%Optional.Get.7b4] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.bc3 = name_ref Get, %.loc10_49.7 [concrete = constants.%Optional.Get.7b4] // 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.ee6) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.307) [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.56b = temporary_storage -// CHECK:STDOUT: %.loc10_49.9: %Optional.696 = bind_value %.loc10_49.2 +// CHECK:STDOUT: %.loc10_49.9: %Optional.654 = bind_value %.loc10_49.2 // CHECK:STDOUT: %Optional.Get.call: init %tuple.type.56b = call %bound_method.loc10_49.6(%.loc10_49.9) to %.loc10_49.8 // CHECK:STDOUT: %.loc10_49.10: ref %tuple.type.56b = temporary %.loc10_49.8, %Optional.Get.call // CHECK:STDOUT: %tuple.elem0: ref %C = tuple_access %.loc10_49.10, element0 @@ -878,32 +878,32 @@ fn Run() { // CHECK:STDOUT: !for.done: // CHECK:STDOUT: %facet_value.loc10_49.1: %type_where = facet_value constants.%tuple.type.56b, () [concrete = constants.%facet_value.c79] // CHECK:STDOUT: %.loc10_49.13: %type_where = converted constants.%tuple.type.56b, %facet_value.loc10_49.1 [concrete = constants.%facet_value.c79] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_49.1: = bound_method %.loc10_49.10, constants.%DestroyT.as_type.as.Destroy.impl.Op.40e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_49.1: = bound_method %.loc10_49.10, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f17 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_49.7: = bound_method %.loc10_49.10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_49.7: = bound_method %.loc10_49.10, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_49.2: %ptr.9f0 = addr_of %.loc10_49.10 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_49.1: init %empty_tuple.type = call %bound_method.loc10_49.7(%addr.loc10_49.2) -// CHECK:STDOUT: %facet_value.loc10_49.2: %type_where = facet_value constants.%Optional.696, () [concrete = constants.%facet_value.44a] -// CHECK:STDOUT: %.loc10_49.14: %type_where = converted constants.%Optional.696, %facet_value.loc10_49.2 [concrete = constants.%facet_value.44a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_49.2: = bound_method %.loc10_49.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_49.1: init %empty_tuple.type = call %bound_method.loc10_49.7(%addr.loc10_49.2) +// CHECK:STDOUT: %facet_value.loc10_49.2: %type_where = facet_value constants.%Optional.654, () [concrete = constants.%facet_value.4cb] +// CHECK:STDOUT: %.loc10_49.14: %type_where = converted constants.%Optional.654, %facet_value.loc10_49.2 [concrete = constants.%facet_value.4cb] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_49.2: = bound_method %.loc10_49.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.169 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_49.8: = bound_method %.loc10_49.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 -// CHECK:STDOUT: %addr.loc10_49.3: %ptr.676 = addr_of %.loc10_49.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_49.2: init %empty_tuple.type = call %bound_method.loc10_49.8(%addr.loc10_49.3) +// CHECK:STDOUT: %bound_method.loc10_49.8: = bound_method %.loc10_49.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %addr.loc10_49.3: %ptr.0ac = addr_of %.loc10_49.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_49.2: init %empty_tuple.type = call %bound_method.loc10_49.8(%addr.loc10_49.3) // CHECK:STDOUT: %facet_value.loc10_49.3: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value.7c2] // CHECK:STDOUT: %.loc10_49.15: %type_where = converted constants.%empty_struct_type, %facet_value.loc10_49.3 [concrete = constants.%facet_value.7c2] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_49.3: = bound_method %var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_49.3: = bound_method %var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_49.9: = bound_method %var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10_49.9: = bound_method %var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_49.4: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_49.3: init %empty_tuple.type = call %bound_method.loc10_49.9(%addr.loc10_49.4) -// CHECK:STDOUT: %facet_value.loc10_48: %type_where = facet_value constants.%EmptyRange.f6a, () [concrete = constants.%facet_value.c8d] -// CHECK:STDOUT: %.loc10_48.5: %type_where = converted constants.%EmptyRange.f6a, %facet_value.loc10_48 [concrete = constants.%facet_value.c8d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_48: = bound_method %.loc10_48.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.000 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_49.3: init %empty_tuple.type = call %bound_method.loc10_49.9(%addr.loc10_49.4) +// CHECK:STDOUT: %facet_value.loc10_48: %type_where = facet_value constants.%EmptyRange.b32, () [concrete = constants.%facet_value.2ad] +// CHECK:STDOUT: %.loc10_48.5: %type_where = converted constants.%EmptyRange.b32, %facet_value.loc10_48 [concrete = constants.%facet_value.2ad] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_48: = bound_method %.loc10_48.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.4f3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_48: = bound_method %.loc10_48.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 -// CHECK:STDOUT: %addr.loc10_48: %ptr.1e6 = addr_of %.loc10_48.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_48: init %empty_tuple.type = call %bound_method.loc10_48(%addr.loc10_48) +// CHECK:STDOUT: %bound_method.loc10_48: = bound_method %.loc10_48.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %addr.loc10_48: %ptr.4b6 = addr_of %.loc10_48.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_48: init %empty_tuple.type = call %bound_method.loc10_48(%addr.loc10_48) // CHECK:STDOUT: // CHECK:STDOUT: } // 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 ba541568c2e27..1934ed6f2fe2e 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -69,8 +69,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %AddWith.generic: %AddWith.type.b35 = struct_value () [concrete] // CHECK:STDOUT: %AddWith.type.483: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] // CHECK:STDOUT: %Self.cc4: %AddWith.type.483 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.c53: type = facet_access_type %Self.cc4 [symbolic] -// CHECK:STDOUT: %pattern_type.740: type = pattern_type %Self.as_type.c53 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.9cc: type = symbolic_binding_type Self, 1, %Self.cc4 [symbolic] +// CHECK:STDOUT: %pattern_type.496: type = pattern_type %Self.binding.as_type.9cc [symbolic] // CHECK:STDOUT: %AddWith.Op.type.5b7: type = fn_type @AddWith.Op, @AddWith(%T) [symbolic] // CHECK:STDOUT: %AddWith.Op.037: %AddWith.Op.type.5b7 = struct_value () [symbolic] // CHECK:STDOUT: %AddWith.assoc_type.36e: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] @@ -79,8 +79,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.b51 = struct_value () [concrete] // CHECK:STDOUT: %As.type.69b: type = facet_type <@As, @As(%T)> [symbolic] // CHECK:STDOUT: %Self.c69: %As.type.69b = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.ba5: type = facet_access_type %Self.c69 [symbolic] -// CHECK:STDOUT: %pattern_type.22c: type = pattern_type %Self.as_type.ba5 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.077: type = symbolic_binding_type Self, 1, %Self.c69 [symbolic] +// CHECK:STDOUT: %pattern_type.fbf: type = pattern_type %Self.binding.as_type.077 [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic] // CHECK:STDOUT: %As.Convert.type.ad1: type = fn_type @As.Convert, @As(%T) [symbolic] // CHECK:STDOUT: %As.Convert.0ed: %As.Convert.type.ad1 = struct_value () [symbolic] @@ -90,8 +90,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.96f = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.3ac: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] // CHECK:STDOUT: %Self.6a1: %ImplicitAs.type.3ac = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.bef: type = facet_access_type %Self.6a1 [symbolic] -// CHECK:STDOUT: %pattern_type.379: type = pattern_type %Self.as_type.bef [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.0ea: type = symbolic_binding_type Self, 1, %Self.6a1 [symbolic] +// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type %Self.binding.as_type.0ea [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.type.4cf: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%T) [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.147: %ImplicitAs.Convert.type.4cf = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.assoc_type.095: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] @@ -263,35 +263,35 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @AddWith.%AddWith.type (%AddWith.type.483) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.cc4)] // CHECK:STDOUT: %AddWith.Op.decl: @AddWith.%AddWith.Op.type (%AddWith.Op.type.5b7) = fn_decl @AddWith.Op [symbolic = @AddWith.%AddWith.Op (constants.%AddWith.Op.037)] { -// CHECK:STDOUT: %self.patt: @AddWith.Op.%pattern_type (%pattern_type.740) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @AddWith.Op.%pattern_type (%pattern_type.740) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %other.patt: @AddWith.Op.%pattern_type (%pattern_type.740) = binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @AddWith.Op.%pattern_type (%pattern_type.740) = value_param_pattern %other.patt, call_param1 [concrete] -// CHECK:STDOUT: %return.patt: @AddWith.Op.%pattern_type (%pattern_type.740) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @AddWith.Op.%pattern_type (%pattern_type.740) = out_param_pattern %return.patt, call_param2 [concrete] +// CHECK:STDOUT: %self.patt: @AddWith.Op.%pattern_type (%pattern_type.496) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @AddWith.Op.%pattern_type (%pattern_type.496) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %other.patt: @AddWith.Op.%pattern_type (%pattern_type.496) = binding_pattern other [concrete] +// CHECK:STDOUT: %other.param_patt: @AddWith.Op.%pattern_type (%pattern_type.496) = value_param_pattern %other.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @AddWith.Op.%pattern_type (%pattern_type.496) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @AddWith.Op.%pattern_type (%pattern_type.496) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_37.1: @AddWith.Op.%AddWith.type (%AddWith.type.483) = specific_constant @AddWith.%Self.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.cc4)] // CHECK:STDOUT: %Self.ref.loc8_37: @AddWith.Op.%AddWith.type (%AddWith.type.483) = name_ref Self, %.loc8_37.1 [symbolic = %Self (constants.%Self.cc4)] -// 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.c53)] -// CHECK:STDOUT: %.loc8_37.2: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c53)] -// CHECK:STDOUT: %self.param: @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53) = 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.c53)] { +// 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.9cc)] +// CHECK:STDOUT: %.loc8_37.2: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.9cc)] +// CHECK:STDOUT: %self.param: @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc) = 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.9cc)] { // CHECK:STDOUT: %.loc8_15.2: @AddWith.Op.%AddWith.type (%AddWith.type.483) = specific_constant @AddWith.%Self.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.cc4)] // CHECK:STDOUT: %Self.ref.loc8_15: @AddWith.Op.%AddWith.type (%AddWith.type.483) = name_ref Self, %.loc8_15.2 [symbolic = %Self (constants.%Self.cc4)] -// 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.c53)] -// 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.c53)] +// 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.9cc)] +// 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.9cc)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53) = 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.c53)] { +// CHECK:STDOUT: %self: @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc) = 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.9cc)] { // CHECK:STDOUT: %.loc8_28.2: @AddWith.Op.%AddWith.type (%AddWith.type.483) = specific_constant @AddWith.%Self.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.cc4)] // CHECK:STDOUT: %Self.ref.loc8_28: @AddWith.Op.%AddWith.type (%AddWith.type.483) = name_ref Self, %.loc8_28.2 [symbolic = %Self (constants.%Self.cc4)] -// 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.c53)] -// 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.c53)] +// 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.9cc)] +// 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.9cc)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53) = out_param call_param2 -// CHECK:STDOUT: %return: ref @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53) = return_slot %return.param +// CHECK:STDOUT: %other: @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc) = out_param call_param2 +// CHECK:STDOUT: %return: ref @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc8_41.1: @AddWith.%AddWith.assoc_type (%AddWith.assoc_type.36e) = assoc_entity element0, %AddWith.Op.decl [symbolic = %assoc0.loc8_41.2 (constants.%assoc0.adf)] // CHECK:STDOUT: @@ -316,20 +316,20 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @As.%As.type (%As.type.69b) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.c69)] // CHECK:STDOUT: %As.Convert.decl: @As.%As.Convert.type (%As.Convert.type.ad1) = fn_decl @As.Convert [symbolic = @As.%As.Convert (constants.%As.Convert.0ed)] { -// CHECK:STDOUT: %self.patt: @As.Convert.%pattern_type.loc12_14 (%pattern_type.22c) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @As.Convert.%pattern_type.loc12_14 (%pattern_type.22c) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @As.Convert.%pattern_type.loc12_14 (%pattern_type.fbf) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @As.Convert.%pattern_type.loc12_14 (%pattern_type.fbf) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @As.Convert.%pattern_type.loc12_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @As.Convert.%pattern_type.loc12_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_14.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @As.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.ba5) = 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.ba5)] { +// CHECK:STDOUT: %self.param: @As.Convert.%Self.binding.as_type (%Self.binding.as_type.077) = 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.077)] { // CHECK:STDOUT: %.loc12_20.2: @As.Convert.%As.type (%As.type.69b) = specific_constant @As.%Self.1, @As(constants.%T) [symbolic = %Self (constants.%Self.c69)] // CHECK:STDOUT: %Self.ref: @As.Convert.%As.type (%As.type.69b) = name_ref Self, %.loc12_20.2 [symbolic = %Self (constants.%Self.c69)] -// 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.ba5)] -// 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.ba5)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.077)] +// CHECK:STDOUT: %.loc12_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.077)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @As.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.ba5) = bind_name self, %self.param +// CHECK:STDOUT: %self: @As.Convert.%Self.binding.as_type (%Self.binding.as_type.077) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @As.Convert.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @As.Convert.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -357,20 +357,20 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.6a1)] // CHECK:STDOUT: %ImplicitAs.Convert.decl: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type.4cf) = fn_decl @ImplicitAs.Convert [symbolic = @ImplicitAs.%ImplicitAs.Convert (constants.%ImplicitAs.Convert.147)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc16_14 (%pattern_type.379) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc16_14 (%pattern_type.379) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc16_14 (%pattern_type.f6d) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc16_14 (%pattern_type.f6d) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.Convert.%pattern_type.loc16_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.Convert.%pattern_type.loc16_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_22.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @ImplicitAs.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.bef) = 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.bef)] { +// CHECK:STDOUT: %self.param: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type.0ea) = 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.0ea)] { // CHECK:STDOUT: %.loc16_20.2: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self.6a1)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = name_ref Self, %.loc16_20.2 [symbolic = %Self (constants.%Self.6a1)] -// 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.bef)] -// 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.bef)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0ea)] +// CHECK:STDOUT: %.loc16_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0ea)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.bef) = bind_name self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type.0ea) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.Convert.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.Convert.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -487,32 +487,32 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.483)] // CHECK:STDOUT: %Self: @AddWith.Op.%AddWith.type (%AddWith.type.483) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.cc4)] -// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.c53)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.740)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.9cc)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.496)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53), %other.param: @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53)) -> @AddWith.Op.%Self.as_type.loc8_15.1 (%Self.as_type.c53); +// CHECK:STDOUT: fn(%self.param: @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc), %other.param: @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc)) -> @AddWith.Op.%Self.binding.as_type (%Self.binding.as_type.9cc); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @As.Convert(@As.%T.loc11_14.2: type, @As.%Self.1: @As.%As.type (%As.type.69b)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.69b)] // CHECK:STDOUT: %Self: @As.Convert.%As.type (%As.type.69b) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.c69)] -// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.ba5)] -// CHECK:STDOUT: %pattern_type.loc12_14: type = pattern_type %Self.as_type.loc12_20.1 [symbolic = %pattern_type.loc12_14 (constants.%pattern_type.22c)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.077)] +// CHECK:STDOUT: %pattern_type.loc12_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc12_14 (constants.%pattern_type.fbf)] // CHECK:STDOUT: %pattern_type.loc12_28: type = pattern_type %T [symbolic = %pattern_type.loc12_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @As.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.ba5)) -> @As.Convert.%T (%T); +// CHECK:STDOUT: fn(%self.param: @As.Convert.%Self.binding.as_type (%Self.binding.as_type.077)) -> @As.Convert.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ImplicitAs.Convert(@ImplicitAs.%T.loc15_22.2: type, @ImplicitAs.%Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3ac)) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3ac)] // CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.6a1)] -// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.bef)] -// CHECK:STDOUT: %pattern_type.loc16_14: type = pattern_type %Self.as_type.loc16_20.1 [symbolic = %pattern_type.loc16_14 (constants.%pattern_type.379)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0ea)] +// CHECK:STDOUT: %pattern_type.loc16_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc16_14 (constants.%pattern_type.f6d)] // CHECK:STDOUT: %pattern_type.loc16_28: type = pattern_type %T [symbolic = %pattern_type.loc16_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.bef)) -> @ImplicitAs.Convert.%T (%T); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type.0ea)) -> @ImplicitAs.Convert.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.builtin.as.AddWith.impl.Op(%self.param: %i32.builtin, %other.param: %i32.builtin) -> %i32.builtin = "int.sadd"; @@ -531,8 +531,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: %AddWith.type => constants.%AddWith.type.483 // CHECK:STDOUT: %Self => constants.%Self.cc4 -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type.c53 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.740 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.9cc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.496 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(constants.%T) { @@ -543,8 +543,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.69b // CHECK:STDOUT: %Self => constants.%Self.c69 -// CHECK:STDOUT: %Self.as_type.loc12_20.1 => constants.%Self.as_type.ba5 -// CHECK:STDOUT: %pattern_type.loc12_14 => constants.%pattern_type.22c +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.077 +// CHECK:STDOUT: %pattern_type.loc12_14 => constants.%pattern_type.fbf // CHECK:STDOUT: %pattern_type.loc12_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -556,8 +556,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.3ac // CHECK:STDOUT: %Self => constants.%Self.6a1 -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%Self.as_type.bef -// CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.379 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.0ea +// CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.f6d // CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -577,7 +577,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.f1c // CHECK:STDOUT: %Self => constants.%AddWith.facet -// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%i32.builtin +// CHECK:STDOUT: %Self.binding.as_type => constants.%i32.builtin // CHECK:STDOUT: %pattern_type => constants.%pattern_type.956 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -597,7 +597,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.cf8 // CHECK:STDOUT: %Self => constants.%As.facet -// CHECK:STDOUT: %Self.as_type.loc12_20.1 => Core.IntLiteral +// CHECK:STDOUT: %Self.binding.as_type => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc12_14 => constants.%pattern_type.dc0 // CHECK:STDOUT: %pattern_type.loc12_28 => constants.%pattern_type.956 // CHECK:STDOUT: } @@ -618,7 +618,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.adc // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.7c0 -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => Core.IntLiteral +// CHECK:STDOUT: %Self.binding.as_type => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.dc0 // CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.956 // CHECK:STDOUT: } @@ -639,7 +639,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.0d7 // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.4f3 -// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%i32.builtin +// CHECK:STDOUT: %Self.binding.as_type => constants.%i32.builtin // CHECK:STDOUT: %pattern_type.loc16_14 => constants.%pattern_type.956 // CHECK:STDOUT: %pattern_type.loc16_28 => constants.%pattern_type.dc0 // CHECK:STDOUT: } @@ -660,8 +660,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %As.Convert.type.843: type = fn_type @As.Convert, @As(%T) [symbolic] // CHECK:STDOUT: %As.Convert.95f: %As.Convert.type.843 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Self.as_type.ffd: type = facet_access_type %Self.4b9 [symbolic] -// CHECK:STDOUT: %pattern_type.e5e: type = pattern_type %Self.as_type.ffd [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.40a: type = symbolic_binding_type Self, 1, %Self.4b9 [symbolic] +// CHECK:STDOUT: %pattern_type.1b6: type = pattern_type %Self.binding.as_type.40a [symbolic] // CHECK:STDOUT: %As.assoc_type.760: type = assoc_entity_type @As, @As(%T) [symbolic] // CHECK:STDOUT: %assoc0.076: %As.assoc_type.760 = assoc_entity element0, imports.%Core.import_ref.708 [symbolic] // CHECK:STDOUT: %As.type.a29: type = facet_type <@As, @As(%i32.builtin)> [concrete] @@ -687,8 +687,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Self.25f: %AddWith.type.5d0 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %AddWith.Op.type.22d: type = fn_type @AddWith.Op, @AddWith(%T) [symbolic] // CHECK:STDOUT: %AddWith.Op.965: %AddWith.Op.type.22d = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.e43: type = facet_access_type %Self.25f [symbolic] -// CHECK:STDOUT: %pattern_type.802: type = pattern_type %Self.as_type.e43 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.ce3: type = symbolic_binding_type Self, 1, %Self.25f [symbolic] +// CHECK:STDOUT: %pattern_type.378: type = pattern_type %Self.binding.as_type.ce3 [symbolic] // CHECK:STDOUT: %AddWith.assoc_type.c10: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] // CHECK:STDOUT: %assoc0.6ec: %AddWith.assoc_type.c10 = assoc_entity element0, imports.%Core.import_ref.1b9 [symbolic] // CHECK:STDOUT: %AddWith.type.2a3: type = facet_type <@AddWith, @AddWith(%i32.builtin)> [concrete] @@ -711,8 +711,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Self.152: %ImplicitAs.type.edb = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.type.275: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%T) [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.42e: %ImplicitAs.Convert.type.275 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type.664: type = facet_access_type %Self.152 [symbolic] -// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %Self.as_type.664 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.3b8: type = symbolic_binding_type Self, 1, %Self.152 [symbolic] +// CHECK:STDOUT: %pattern_type.519: type = pattern_type %Self.binding.as_type.3b8 [symbolic] // CHECK:STDOUT: %ImplicitAs.assoc_type.ca0: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] // CHECK:STDOUT: %assoc0.9f5: %ImplicitAs.assoc_type.ca0 = assoc_entity element0, imports.%Core.import_ref.1c752f.1 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.7a9: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] @@ -948,8 +948,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.8d8)] // CHECK:STDOUT: %Self: @As.Convert.%As.type (%As.type.8d8) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.4b9)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.ffd)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.e5e)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.40a)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.1b6)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -961,8 +961,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.5d0)] // CHECK:STDOUT: %Self: @AddWith.Op.%AddWith.type (%AddWith.type.5d0) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.25f)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.e43)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.802)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ce3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.378)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -973,8 +973,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.edb)] // CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.edb) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.152)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.664)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.aa6)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.3b8)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.519)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -1043,8 +1043,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.8d8 // CHECK:STDOUT: %Self => constants.%Self.4b9 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.ffd -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e5e +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.40a +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.1b6 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1068,8 +1068,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: %AddWith.type => constants.%AddWith.type.5d0 // CHECK:STDOUT: %Self => constants.%Self.25f -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.e43 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.802 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ce3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.378 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%i32.builtin) { @@ -1092,8 +1092,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.edb // CHECK:STDOUT: %Self => constants.%Self.152 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.664 -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.aa6 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.3b8 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.519 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index d9e8f8e16e28a..5c68e82f82f31 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -27,8 +27,8 @@ 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.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -178,32 +178,32 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] // CHECK:STDOUT: %I.F.decl: %I.F.type = fn_decl @I.F [concrete = constants.%I.F] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %other.patt: @I.F.%pattern_type (%pattern_type.d22) = binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @I.F.%pattern_type (%pattern_type.d22) = value_param_pattern %other.patt, call_param1 [concrete] -// CHECK:STDOUT: %return.patt: @I.F.%pattern_type (%pattern_type.d22) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @I.F.%pattern_type (%pattern_type.d22) = out_param_pattern %return.patt, call_param2 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %other.patt: @I.F.%pattern_type (%pattern_type.3f7) = binding_pattern other [concrete] +// CHECK:STDOUT: %other.param_patt: @I.F.%pattern_type (%pattern_type.3f7) = value_param_pattern %other.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @I.F.%pattern_type (%pattern_type.3f7) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @I.F.%pattern_type (%pattern_type.3f7) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// CHECK:STDOUT: %.loc16_36: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %self.param: @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67) = 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.a67)] { +// 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.1b7)] +// CHECK:STDOUT: %.loc16_36: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = 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.1b7)] { // CHECK:STDOUT: %Self.ref.loc16_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// 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.a67)] +// 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.1b7)] +// 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.1b7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67) = 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.a67)] { +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = 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.1b7)] { // CHECK:STDOUT: %Self.ref.loc16_27: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// 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.a67)] +// 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.1b7)] +// 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.1b7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67) = out_param call_param2 -// CHECK:STDOUT: %return: ref @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67) = return_slot %return.param +// CHECK:STDOUT: %other: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = out_param call_param2 +// CHECK:STDOUT: %return: ref @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.F.decl [concrete = constants.%assoc0.82e] // CHECK:STDOUT: @@ -247,23 +247,23 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.d22)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.3f7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67), %other.param: @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67)) -> @I.F.%Self.as_type.loc16_14.1 (%Self.as_type.a67); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7), %other.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7)) -> @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.as.I.impl.F(%self.param: %i32, %other.param: %i32) -> %i32 = "int.sadd"; // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.a67 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 +// CHECK:STDOUT: %Self.binding.as_type => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/alias.carbon b/toolchain/check/testdata/function/call/alias.carbon index e6aed6aa8e2e6..cdcfcddef8488 100644 --- a/toolchain/check/testdata/function/call/alias.carbon +++ b/toolchain/check/testdata/function/call/alias.carbon @@ -33,10 +33,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -95,11 +95,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %empty_tuple.type = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon index 623bae53da9f6..9117a4d9538ce 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -63,10 +63,10 @@ fn Run() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -135,11 +135,11 @@ fn Run() { // CHECK:STDOUT: %x: ref %i32 = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index aa1eec42b2b6a..8c63455ce45e3 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -64,10 +64,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -152,11 +152,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index 566c56b615fb1..ede0c0dcd5e81 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -63,10 +63,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.a1c, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5c6: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3f8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.14d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3f8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0b7: type = ptr_type %tuple.type.a1c [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5c6, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.14d, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -159,11 +159,11 @@ fn Main() { // CHECK:STDOUT: %Foo.call: init %empty_tuple.type = call %Foo.ref(%.loc20_8, %.loc20_12.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.a1c, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%tuple.type.a1c, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5c6 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.5c6, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.14d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.14d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.0b7 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/call/return_implicit.carbon b/toolchain/check/testdata/function/call/return_implicit.carbon index 133aa09cb488b..bc9cee257c657 100644 --- a/toolchain/check/testdata/function/call/return_implicit.carbon +++ b/toolchain/check/testdata/function/call/return_implicit.carbon @@ -31,10 +31,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -79,11 +79,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %empty_tuple.type = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon index b4fc6c68d558e..df05c041e540a 100644 --- a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon @@ -213,10 +213,10 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %D, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.707: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.34d: %DestroyT.as_type.as.Destroy.impl.Op.type.707 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b3f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.cd4: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b3f = struct_value () [concrete] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.34d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.cd4, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -279,18 +279,18 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %.loc34_15.2: ref %D = temporary %.loc34_15.1, %ReturnDUsed.call // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%D, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_15.3: %type_where = converted constants.%D, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_15.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.34d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.34d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_15.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_15.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cd4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cd4, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_15.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34: %ptr.19c = addr_of %.loc34_15.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%D, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc33_17.3: %type_where = converted constants.%D, %facet_value.loc33 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_17.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.34d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.34d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_17.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_17.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cd4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cd4, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_17.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.19c = addr_of %.loc33_17.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/fail_local_decl.carbon b/toolchain/check/testdata/function/definition/fail_local_decl.carbon index e0b47317520b1..61027e45f9b82 100644 --- a/toolchain/check/testdata/function/definition/fail_local_decl.carbon +++ b/toolchain/check/testdata/function/definition/fail_local_decl.carbon @@ -105,10 +105,10 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.596: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.596, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -153,18 +153,18 @@ fn F() { // CHECK:STDOUT: %w: ref %empty_struct_type = bind_name w, %w.var // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_13: %type_where = converted constants.%empty_struct_type, %facet_value.loc14 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc14: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc14: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc14: %ptr.c28 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_11: %type_where = converted constants.%empty_struct_type, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9: %ptr.c28 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/call.carbon b/toolchain/check/testdata/function/generic/call.carbon index 01be4b93784ac..c4a6a8ac40898 100644 --- a/toolchain/check/testdata/function/generic/call.carbon +++ b/toolchain/check/testdata/function/generic/call.carbon @@ -76,11 +76,11 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] // CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] // CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] @@ -126,53 +126,53 @@ 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.322 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.965801.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.965801.1) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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_13.2: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: %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: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: %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: } -// CHECK:STDOUT: %x: @Function.%T.as_type.loc5_31.1 (%T.as_type) = bind_name 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: %x: @Function.%T.binding.as_type (%T.binding.as_type) = bind_name 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: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T.loc5_13.1: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc5_31.1: type = facet_access_type %T.loc5_13.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.965801.1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_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.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.07c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_13.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc6_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc5_13.1 [symbolic = %.loc6_10.2 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6_10.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%T.loc5_13.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @Function.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @Function.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6_10.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 -// CHECK:STDOUT: %.loc5_34: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc6_10.1: init @Function.%T.as_type.loc5_31.1 (%T.as_type) = call %bound_method.loc6_10.2(%x.ref) to %.loc5_34 +// CHECK:STDOUT: %.loc5_34: ref @Function.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc6_10.1: init @Function.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc6_10.2(%x.ref) to %.loc5_34 // CHECK:STDOUT: return %.loc6_10.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -184,16 +184,16 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_16.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.8cd)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type)) -> %return.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @CallGeneric.%T.binding.as_type (%T.binding.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_16.2 [symbolic = %T.loc10_16.1 (constants.%T.be8)] -// CHECK:STDOUT: %x.ref: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %.loc12_23.1: %Copy.type = converted constants.%T.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] -// CHECK:STDOUT: %.loc12_23.2: %Copy.type = converted constants.%T.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %.loc12_23.1: %Copy.type = converted constants.%T.binding.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] +// CHECK:STDOUT: %.loc12_23.2: %Copy.type = converted constants.%T.binding.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] // CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.be8) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.8cd)] // CHECK:STDOUT: -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) = call %Function.specific_fn.loc12_10.1(%x.ref) to %.loc10_37 +// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.binding.as_type (%T.binding.as_type) = call %Function.specific_fn.loc12_10.1(%x.ref) to %.loc10_37 // CHECK:STDOUT: return %Function.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -244,11 +244,11 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T.be8) { // CHECK:STDOUT: %T.loc5_13.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.e15 // CHECK:STDOUT: %.loc6_10.2 => constants.%.427 // CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.168 @@ -257,8 +257,8 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.be8) { // CHECK:STDOUT: %T.loc10_16.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc10_34.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T.8b3) { @@ -269,7 +269,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.2d1) { // CHECK:STDOUT: %T.loc5_13.1 => constants.%Copy.facet.2d1 -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.79f +// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -282,7 +282,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.9e3) { // CHECK:STDOUT: %T.loc5_13.1 => constants.%Copy.facet.9e3 -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.019 +// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.019 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.44a // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -299,11 +299,11 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] // CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] // CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] @@ -349,53 +349,53 @@ 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.322 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.965801.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.965801.1) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // 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_13.2: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: %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: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_13.2 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// 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: %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: } -// CHECK:STDOUT: %x: @Function.%T.as_type.loc5_31.1 (%T.as_type) = bind_name 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: %x: @Function.%T.binding.as_type (%T.binding.as_type) = bind_name 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: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc5_13.2: %Copy.type) { // CHECK:STDOUT: %T.loc5_13.1: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T.loc5_13.1 (constants.%T.be8)] -// CHECK:STDOUT: %T.as_type.loc5_31.1: type = facet_access_type %T.loc5_13.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.965801.1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_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.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.07c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.1cd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_13.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc6_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T.loc5_13.1 [symbolic = %.loc6_10.2 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6_10.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] // CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.Op(%T.loc5_13.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @Function.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @Function.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6_10.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.168)] // 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.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.2ce)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 -// CHECK:STDOUT: %.loc5_34: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc6_10.1: init @Function.%T.as_type.loc5_31.1 (%T.as_type) = call %bound_method.loc6_10.2(%x.ref) to %.loc5_34 +// CHECK:STDOUT: %.loc5_34: ref @Function.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc6_10.1: init @Function.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc6_10.2(%x.ref) to %.loc5_34 // CHECK:STDOUT: return %.loc6_10.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -407,15 +407,15 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_16.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.8cd)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type)) -> %return.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) { +// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.binding.as_type (%T.binding.as_type)) -> %return.param: @CallGeneric.%T.binding.as_type (%T.binding.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.as_type.loc10_34.1 (%T.as_type) = name_ref x, %x -// CHECK:STDOUT: %.loc12_20.1: %Copy.type = converted constants.%T.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] -// CHECK:STDOUT: %.loc12_20.2: %Copy.type = converted constants.%T.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %.loc12_20.1: %Copy.type = converted constants.%T.binding.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] +// CHECK:STDOUT: %.loc12_20.2: %Copy.type = converted constants.%T.binding.as_type, constants.%T.be8 [symbolic = %T.loc10_16.1 (constants.%T.be8)] // CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.be8) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.8cd)] // CHECK:STDOUT: -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) = call %Function.specific_fn.loc12_10.1(%x.ref) to %.loc10_37 +// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.binding.as_type (%T.binding.as_type) = call %Function.specific_fn.loc12_10.1(%x.ref) to %.loc10_37 // CHECK:STDOUT: return %Function.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -458,11 +458,11 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T.be8) { // CHECK:STDOUT: %T.loc5_13.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.07c +// CHECK:STDOUT: %require_complete => constants.%require_complete.1cd // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.e15 // CHECK:STDOUT: %.loc6_10.2 => constants.%.427 // CHECK:STDOUT: %impl.elem0.loc6_10.2 => constants.%impl.elem0.168 @@ -471,8 +471,8 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.be8) { // CHECK:STDOUT: %T.loc10_16.1 => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc10_34.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T.8b3) { @@ -483,7 +483,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.2d1) { // CHECK:STDOUT: %T.loc5_13.1 => constants.%Copy.facet.2d1 -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.79f +// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -496,7 +496,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.9e3) { // CHECK:STDOUT: %T.loc5_13.1 => constants.%Copy.facet.9e3 -// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.019 +// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.019 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.44a // CHECK:STDOUT: // CHECK:STDOUT: !definition: 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 973c81db5d128..637fd30aeed7a 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 @@ -90,7 +90,7 @@ fn G() { // CHECK:STDOUT: %Generic.assoc_type.0fd877.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] // CHECK:STDOUT: %assoc0.2966cb.2: %Generic.assoc_type.0fd877.2 = assoc_entity element0, @Generic.%Generic.F.decl [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.2db63e.2 [symbolic] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] // CHECK:STDOUT: %.468: type = fn_type_with_self_type %Generic.F.type.f439a9.2, %U [symbolic] // CHECK:STDOUT: %impl.elem0: %.468 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] @@ -252,7 +252,7 @@ fn G() { // CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.loc33_45.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc33_22.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.0fd877.2)] // CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = assoc_entity element0, @Generic.%Generic.F.decl [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] -// CHECK:STDOUT: %U.as_type.loc34_4.2: type = facet_access_type %U.loc33_32.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U.loc33_32.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U.loc33_32.1, @Generic, @Generic(%T.loc33_22.1) [symbolic = %Generic.lookup_impl_witness (constants.%Generic.lookup_impl_witness)] // CHECK:STDOUT: %Generic.F.type: type = fn_type @Generic.F, @Generic(%T.loc33_22.1) [symbolic = %Generic.F.type (constants.%Generic.F.type.f439a9.2)] // CHECK:STDOUT: %.loc34_4.3: type = fn_type_with_self_type %Generic.F.type, %U.loc33_32.1 [symbolic = %.loc34_4.3 (constants.%.468)] @@ -264,8 +264,8 @@ fn G() { // CHECK:STDOUT: %U.ref: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.2db63e.2) = name_ref U, %U.loc33_32.2 [symbolic = %U.loc33_32.1 (constants.%U)] // CHECK:STDOUT: %.loc34_4.1: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = specific_constant @Generic.%assoc0.loc16_9.1, @Generic(constants.%T) [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.0fd877.2) = name_ref F, %.loc34_4.1 [symbolic = %assoc0 (constants.%assoc0.2966cb.2)] -// 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.2: type = converted %U.ref, %U.as_type.loc34_4.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] +// 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.2: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc34_4.1: @CallGenericMethod.%.loc34_4.3 (%.468) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @Generic.F(constants.%T, constants.%U) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %.loc34_7: init %empty_tuple.type = call %specific_impl_fn.loc34_4.1() @@ -340,7 +340,7 @@ fn G() { // CHECK:STDOUT: %require_complete => constants.%complete_type.ca2 // CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.713 // CHECK:STDOUT: %assoc0 => constants.%assoc0.9b7 -// CHECK:STDOUT: %U.as_type.loc34_4.2 => constants.%ImplsGeneric +// CHECK:STDOUT: %U.binding.as_type => constants.%ImplsGeneric // CHECK:STDOUT: %Generic.lookup_impl_witness => constants.%Generic.impl_witness // CHECK:STDOUT: %Generic.F.type => constants.%Generic.F.type.4cf // CHECK:STDOUT: %.loc34_4.3 => constants.%.573 diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 38f53c54ca06c..5ea57d56f5b31 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -534,10 +534,10 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d35: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.900: %DestroyT.as_type.as.Destroy.impl.Op.type.d35 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.61e = struct_value () [concrete] // CHECK:STDOUT: %complete_type.7ea: = complete_type_witness %ptr.6db [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.8ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -630,11 +630,11 @@ fn F() { // CHECK:STDOUT: %ExplicitAndAlsoDeduced.call: init %ptr.6db = call %ExplicitAndAlsoDeduced.specific_fn(%.loc11_37.6) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_37.7: %type_where = converted constants.%A, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc11_37.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.900 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.900, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc11_37.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc11_37.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc11_37.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6db = addr_of %.loc11_37.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %ExplicitAndAlsoDeduced.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: 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 29d297bbba45e..81a76492123da 100644 --- a/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon +++ b/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon @@ -71,18 +71,18 @@ fn F() { // CHECK:STDOUT: %facet_type: type = facet_type <@Y & @W> [concrete] // CHECK:STDOUT: %E: %facet_type = bind_symbolic_name E, 0 [symbolic] // CHECK:STDOUT: %pattern_type.50c: type = pattern_type %facet_type [concrete] -// CHECK:STDOUT: %E.as_type: type = facet_access_type %E [symbolic] +// CHECK:STDOUT: %E.binding.as_type: type = symbolic_binding_type E, 0, %E [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %E, @Y [symbolic] -// CHECK:STDOUT: %Y.facet.682: %Y.type = facet_value %E.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %CC.6f9: type = class_type @CC, @CC(%Y.facet.682) [symbolic] -// CHECK:STDOUT: %Z.impl_witness.3fa: = impl_witness file.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] +// CHECK:STDOUT: %Y.facet.8d8: %Y.type = facet_value %E.binding.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %CC.f67: type = class_type @CC, @CC(%Y.facet.8d8) [symbolic] +// CHECK:STDOUT: %Z.impl_witness.62d: = impl_witness file.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Y.facet.4e8: %Y.type = facet_value %DD, (%Y.impl_witness) [concrete] // CHECK:STDOUT: %CC.3b3: type = class_type @CC, @CC(%Y.facet.4e8) [concrete] // CHECK:STDOUT: %facet_value: %facet_type = facet_value %DD, (%Y.impl_witness, %W.impl_witness) [concrete] -// CHECK:STDOUT: %Z.impl_witness.8f8: = impl_witness file.%Z.impl_witness_table, @CC.as.Z.impl(%facet_value) [concrete] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC.3b3, (%Z.impl_witness.8f8) [concrete] +// CHECK:STDOUT: %Z.impl_witness.23f: = impl_witness file.%Z.impl_witness_table, @CC.as.Z.impl(%facet_value) [concrete] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC.3b3, (%Z.impl_witness.23f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -137,10 +137,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_14.1 [symbolic = %E.loc19_14.2 (constants.%E)] -// 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.682)] -// CHECK:STDOUT: %.loc19_29: %Y.type = converted %E.ref, %Y.facet.loc19_29.1 [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.682)] -// CHECK:STDOUT: %CC.loc19_29.1: type = class_type @CC, @CC(constants.%Y.facet.682) [symbolic = %CC.loc19_29.2 (constants.%CC.6f9)] +// 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.8d8)] +// CHECK:STDOUT: %.loc19_29: %Y.type = converted %E.ref, %Y.facet.loc19_29.1 [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.8d8)] +// CHECK:STDOUT: %CC.loc19_29.1: type = class_type @CC, @CC(constants.%Y.facet.8d8) [symbolic = %CC.loc19_29.2 (constants.%CC.f67)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -155,7 +155,7 @@ fn F() { // CHECK:STDOUT: %E.loc19_14.1: %facet_type = bind_symbolic_name E, 0 [symbolic = %E.loc19_14.2 (constants.%E)] // CHECK:STDOUT: } // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @CC.as.Z.impl [concrete] -// CHECK:STDOUT: %Z.impl_witness: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = @CC.as.Z.impl.%Z.impl_witness (constants.%Z.impl_witness.3fa)] +// CHECK:STDOUT: %Z.impl_witness: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = @CC.as.Z.impl.%Z.impl_witness (constants.%Z.impl_witness.62d)] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -195,11 +195,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @CC.as.Z.impl(%E.loc19_14.1: %facet_type) { // CHECK:STDOUT: %E.loc19_14.2: %facet_type = bind_symbolic_name E, 0 [symbolic = %E.loc19_14.2 (constants.%E)] -// CHECK:STDOUT: %E.as_type.loc19_29.2: type = facet_access_type %E.loc19_14.2 [symbolic = %E.as_type.loc19_29.2 (constants.%E.as_type)] +// CHECK:STDOUT: %E.binding.as_type: type = symbolic_binding_type E, 0, %E.loc19_14.2 [symbolic = %E.binding.as_type (constants.%E.binding.as_type)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %E.loc19_14.2, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// 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.682)] -// CHECK:STDOUT: %CC.loc19_29.2: type = class_type @CC, @CC(%Y.facet.loc19_29.2) [symbolic = %CC.loc19_29.2 (constants.%CC.6f9)] -// CHECK:STDOUT: %Z.impl_witness: = impl_witness file.%Z.impl_witness_table, @CC.as.Z.impl(%E.loc19_14.2) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.3fa)] +// 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.8d8)] +// CHECK:STDOUT: %CC.loc19_29.2: type = class_type @CC, @CC(%Y.facet.loc19_29.2) [symbolic = %CC.loc19_29.2 (constants.%CC.f67)] +// CHECK:STDOUT: %Z.impl_witness: = impl_witness file.%Z.impl_witness_table, @CC.as.Z.impl(%E.loc19_14.2) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.62d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -241,7 +241,7 @@ fn F() { // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %facet_value: %facet_type = facet_value constants.%DD, (constants.%Y.impl_witness, constants.%W.impl_witness) [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_12.1: %facet_type = converted constants.%DD, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC, (constants.%Z.impl_witness.8f8) [concrete = constants.%Z.facet] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC, (constants.%Z.impl_witness.23f) [concrete = constants.%Z.facet] // CHECK:STDOUT: %.loc22_12.2: %Z.type = converted %CC, %Z.facet [concrete = constants.%Z.facet] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -250,17 +250,17 @@ fn F() { // CHECK:STDOUT: %D.loc12_10.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CC(constants.%Y.facet.682) { -// CHECK:STDOUT: %D.loc12_10.1 => constants.%Y.facet.682 +// CHECK:STDOUT: specific @CC(constants.%Y.facet.8d8) { +// CHECK:STDOUT: %D.loc12_10.1 => constants.%Y.facet.8d8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%E) { // CHECK:STDOUT: %E.loc19_14.2 => constants.%E -// CHECK:STDOUT: %E.as_type.loc19_29.2 => constants.%E.as_type +// CHECK:STDOUT: %E.binding.as_type => constants.%E.binding.as_type // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness -// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.682 -// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.6f9 -// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.3fa +// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.8d8 +// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.f67 +// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.62d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC(constants.%Y.facet.4e8) { @@ -269,11 +269,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%facet_value) { // CHECK:STDOUT: %E.loc19_14.2 => constants.%facet_value -// CHECK:STDOUT: %E.as_type.loc19_29.2 => constants.%DD +// CHECK:STDOUT: %E.binding.as_type => constants.%DD // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.impl_witness // CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.4e8 // CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.3b3 -// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.8f8 +// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.23f // 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 5dccbf94fc567..d4a0adb6063f0 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 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %Z.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.4a0: type = pattern_type %Z.type [concrete] -// 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.ba1: type = pattern_type %struct_type.a [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.86d: 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.4a0 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.ba1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.ba1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.86d) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.86d) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_10: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -81,9 +81,9 @@ fn B() { // CHECK:STDOUT: %x.param: @A.%struct_type.a.loc4_22.1 (%struct_type.a) = value_param call_param0 // CHECK:STDOUT: %.loc4_22: type = splice_block %struct_type.a.loc4_22.2 [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] { // CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_21.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_21.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc4_21: type = converted %T.ref, %T.as_type.loc4_21.2 [symbolic = %T.as_type.loc4_21.1 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_22.2: type = struct_type {.a: @A.%T.as_type.loc4_21.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc4_21: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_22.2: type = struct_type {.a: @A.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: @A.%struct_type.a.loc4_22.1 (%struct_type.a) = bind_name x, %x.param // CHECK:STDOUT: } @@ -99,9 +99,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc4_6.2: %Z.type) { // CHECK:STDOUT: %T.loc4_6.1: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_21.1: type = facet_access_type %T.loc4_6.1 [symbolic = %T.as_type.loc4_21.1 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_22.1: type = struct_type {.a: @A.%T.as_type.loc4_21.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_22.1 [symbolic = %pattern_type (constants.%pattern_type.ba1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc4_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_22.1: type = struct_type {.a: @A.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_22.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_22.1 [symbolic = %pattern_type (constants.%pattern_type.86d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_22.1 [symbolic = %require_complete (constants.%require_complete)] @@ -114,9 +114,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { // CHECK:STDOUT: %T.loc4_6.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc4_21.1 => constants.%T.as_type +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %struct_type.a.loc4_22.1 => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ba1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_imported_function.carbon @@ -127,9 +127,9 @@ fn B() { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %T: %Z.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.819: type = pattern_type %Z.type [concrete] -// 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.143: type = pattern_type %struct_type.a [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.0cc: type = pattern_type %struct_type.a [symbolic] // CHECK:STDOUT: %A.type.00d: type = fn_type @A.loc4 [concrete] // CHECK:STDOUT: %A.1db: %A.type.00d = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic] @@ -162,8 +162,8 @@ fn B() { // CHECK:STDOUT: %Lib.import = import Lib // CHECK:STDOUT: %A.decl: %A.type.00d = fn_decl @A.loc4 [concrete = constants.%A.1db] { // CHECK:STDOUT: %T.patt: %pattern_type.819 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.143) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.143) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.0cc) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.0cc) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_13: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -174,9 +174,9 @@ fn B() { // CHECK:STDOUT: %x.param: @A.loc4.%struct_type.a.loc4_26.1 (%struct_type.a) = value_param call_param0 // CHECK:STDOUT: %.loc4_26: type = splice_block %struct_type.a.loc4_26.2 [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] { // CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_6.2 [symbolic = %T.loc4_6.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_25.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc4_25: type = converted %T.ref, %T.as_type.loc4_25.2 [symbolic = %T.as_type.loc4_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_26.2: type = struct_type {.a: @A.loc4.%T.as_type.loc4_25.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc4_25: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_26.2: type = struct_type {.a: @A.loc4.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: @A.loc4.%struct_type.a.loc4_26.1 (%struct_type.a) = bind_name x, %x.param // CHECK:STDOUT: } @@ -191,9 +191,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.loc4(%T.loc4_6.2: %Z.type) { // CHECK:STDOUT: %T.loc4_6.1: %Z.type = bind_symbolic_name T, 0 [symbolic = %T.loc4_6.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc4_25.1: type = facet_access_type %T.loc4_6.1 [symbolic = %T.as_type.loc4_25.1 (constants.%T.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_26.1: type = struct_type {.a: @A.loc4.%T.as_type.loc4_25.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_26.1 [symbolic = %pattern_type (constants.%pattern_type.143)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc4_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_26.1: type = struct_type {.a: @A.loc4.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_26.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_26.1 [symbolic = %pattern_type (constants.%pattern_type.0cc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_26.1 [symbolic = %require_complete (constants.%require_complete)] @@ -218,9 +218,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.1(imports.%Lib.import_ref.c90: %Z.type) [from "lib.carbon"] { // CHECK:STDOUT: %T: %Z.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// 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.143)] +// 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.0cc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic = %require_complete (constants.%require_complete)] @@ -230,15 +230,15 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.loc4(constants.%T) { // CHECK:STDOUT: %T.loc4_6.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc4_25.1 => constants.%T.as_type +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %struct_type.a.loc4_26.1 => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.143 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0cc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.1(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %T.as_type => constants.%T.as_type +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %struct_type.a => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.143 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0cc // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/resolve_used.carbon b/toolchain/check/testdata/function/generic/resolve_used.carbon index 650b37564f718..17787514d353a 100644 --- a/toolchain/check/testdata/function/generic/resolve_used.carbon +++ b/toolchain/check/testdata/function/generic/resolve_used.carbon @@ -59,17 +59,17 @@ fn CallNegative() { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.818: %type_where = facet_value %Int, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.920: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.818) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.16a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.818) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.35f: %DestroyT.as_type.as.Destroy.impl.Op.type.16a = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.47b: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.818) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.818) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.db2: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b = struct_value () [symbolic] // CHECK:STDOUT: %ptr.784: type = ptr_type %Int [symbolic] // CHECK:STDOUT: %require_complete.0f5: = require_complete_type %ptr.784 [symbolic] -// CHECK:STDOUT: %Destroy.facet.e38: %Destroy.type = facet_value %Int, (%Destroy.impl_witness.920) [symbolic] -// CHECK:STDOUT: %.4ec: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.e38 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9f5: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.35f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.818) [symbolic] +// CHECK:STDOUT: %Destroy.facet.141: %Destroy.type = facet_value %Int, (%Destroy.impl_witness.47b) [symbolic] +// CHECK:STDOUT: %.944: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.141 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a72: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.db2, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.818) [symbolic] // CHECK:STDOUT: %CallNegative.type: type = fn_type @CallNegative [concrete] // CHECK:STDOUT: %CallNegative: %CallNegative.type = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] @@ -78,13 +78,13 @@ fn CallNegative() { // CHECK:STDOUT: %complete_type.d94: = complete_type_witness [concrete] // CHECK:STDOUT: %pattern_type.47b: type = pattern_type %i0 [concrete] // CHECK:STDOUT: %facet_value.5b4: %type_where = facet_value %i0, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.20d: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] -// CHECK:STDOUT: %Destroy.facet.168: %Destroy.type = facet_value %i0, (%Destroy.impl_witness.20d) [concrete] -// CHECK:STDOUT: %.6d5: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.168 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.59e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.701: %DestroyT.as_type.as.Destroy.impl.Op.type.59e = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.7f4: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] +// CHECK:STDOUT: %Destroy.facet.00a: %Destroy.type = facet_value %i0, (%Destroy.impl_witness.7f4) [concrete] +// CHECK:STDOUT: %.1c9: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.00a [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d1c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5b4) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.aeb: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d1c = struct_value () [concrete] // CHECK:STDOUT: %ptr.3f1: type = ptr_type %i0 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8e8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.701, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5b4) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.026: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.aeb, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.5b4) [concrete] // CHECK:STDOUT: %complete_type.588: = complete_type_witness %ptr.3f1 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -99,8 +99,8 @@ fn CallNegative() { // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/parts/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -134,12 +134,12 @@ fn CallNegative() { // CHECK:STDOUT: %require_complete.loc15_20: = require_complete_type %Int.loc15_20.2 [symbolic = %require_complete.loc15_20 (constants.%require_complete.b4f)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Int.loc15_20.2 [symbolic = %pattern_type (constants.%pattern_type.896)] // CHECK:STDOUT: %facet_value.loc15_3.2: %type_where = facet_value %Int.loc15_20.2, () [symbolic = %facet_value.loc15_3.2 (constants.%facet_value.818)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc15_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.920)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc15_20.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.e38)] -// CHECK:STDOUT: %.loc15_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc15_3.2 (constants.%.4ec)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc15_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.16a)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @ErrorIfNIsZero.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.16a) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc15_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9f5)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc15_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.47b)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Int.loc15_20.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.141)] +// CHECK:STDOUT: %.loc15_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc15_3.2 (constants.%.944)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc15_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @ErrorIfNIsZero.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.c3b) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.db2)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc15_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a72)] // CHECK:STDOUT: %ptr: type = ptr_type %Int.loc15_20.2 [symbolic = %ptr (constants.%ptr.784)] // CHECK:STDOUT: %require_complete.loc15_3: = require_complete_type %ptr [symbolic = %require_complete.loc15_3 (constants.%require_complete.0f5)] // CHECK:STDOUT: @@ -159,12 +159,12 @@ fn CallNegative() { // CHECK:STDOUT: %v: ref @ErrorIfNIsZero.%Int.loc15_20.2 (%Int) = bind_name v, %v.var // CHECK:STDOUT: %facet_value.loc15_3.1: %type_where = facet_value constants.%Int, () [symbolic = %facet_value.loc15_3.2 (constants.%facet_value.818)] // CHECK:STDOUT: %.loc15_3.1: %type_where = converted constants.%Int, %facet_value.loc15_3.1 [symbolic = %facet_value.loc15_3.2 (constants.%facet_value.818)] -// CHECK:STDOUT: %impl.elem0: @ErrorIfNIsZero.%.loc15_3.2 (%.4ec) = impl_witness_access constants.%Destroy.impl_witness.920, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.35f)] +// CHECK:STDOUT: %impl.elem0: @ErrorIfNIsZero.%.loc15_3.2 (%.944) = impl_witness_access constants.%Destroy.impl_witness.47b, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.db2)] // CHECK:STDOUT: %bound_method.loc15_3.1: = bound_method %v.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.818) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9f5)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.818) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a72)] // CHECK:STDOUT: %bound_method.loc15_3.2: = bound_method %v.var, %specific_fn // CHECK:STDOUT: %addr: @ErrorIfNIsZero.%ptr (%ptr.784) = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -190,12 +190,12 @@ fn CallNegative() { // CHECK:STDOUT: %require_complete.loc15_20 => constants.%complete_type.d94 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.47b // CHECK:STDOUT: %facet_value.loc15_3.2 => constants.%facet_value.5b4 -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.20d -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.168 -// CHECK:STDOUT: %.loc15_3.2 => constants.%.6d5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.59e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.701 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8e8 +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.7f4 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.00a +// CHECK:STDOUT: %.loc15_3.2 => constants.%.1c9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.d1c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.aeb +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.026 // CHECK:STDOUT: %ptr => constants.%ptr.3f1 // CHECK:STDOUT: %require_complete.loc15_3 => constants.%complete_type.588 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/return_slot.carbon b/toolchain/check/testdata/function/generic/return_slot.carbon index 1cbfa898021e0..cf5279204a114 100644 --- a/toolchain/check/testdata/function/generic/return_slot.carbon +++ b/toolchain/check/testdata/function/generic/return_slot.carbon @@ -74,20 +74,20 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.be8: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.be8) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.be8) [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %complete_type.782: = complete_type_witness %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -239,25 +239,25 @@ fn G() { // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.be8] // CHECK:STDOUT: %.loc24_3.2: %type_where = converted constants.%C, %facet_value.loc24 [concrete = constants.%facet_value.be8] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.003] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.be8) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.315] +// CHECK:STDOUT: %bound_method.loc24: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc23_3: %type_where = converted constants.%empty_tuple.type, %facet_value.loc23 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc22_3: %type_where = converted constants.%i32, %facet_value.loc22 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc22: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/type_param.carbon b/toolchain/check/testdata/function/generic/type_param.carbon index e8347fcfb4953..b8c34f7019940 100644 --- a/toolchain/check/testdata/function/generic/type_param.carbon +++ b/toolchain/check/testdata/function/generic/type_param.carbon @@ -36,17 +36,17 @@ fn F(T:! type) { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.79f, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.5e2: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] // CHECK:STDOUT: %require_complete.132: = require_complete_type %ptr.a13 [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] -// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.5e2) [symbolic] +// CHECK:STDOUT: %.0f0: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -56,8 +56,8 @@ fn F(T:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -84,12 +84,12 @@ fn F(T:! type) { // CHECK:STDOUT: %require_complete.loc17: = require_complete_type %T.loc15_6.1 [symbolic = %require_complete.loc17 (constants.%require_complete.4ae)] // CHECK:STDOUT: %pattern_type.loc17: type = pattern_type %T.loc15_6.1 [symbolic = %pattern_type.loc17 (constants.%pattern_type.7dc)] // CHECK:STDOUT: %facet_value.loc16_3.2: %type_where = facet_value %ptr.loc16_11.2, () [symbolic = %facet_value.loc16_3.2 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc16_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.71a)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc16_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.5e2)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc16_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc16_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc16_3.2 (constants.%.280)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc16_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.13f)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.13f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc16_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %.loc16_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc16_3.2 (constants.%.0f0)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc16_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c0)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc16_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %ptr.loc16_3: type = ptr_type %ptr.loc16_11.2 [symbolic = %ptr.loc16_3 (constants.%ptr.a13)] // CHECK:STDOUT: %require_complete.loc16_3: = require_complete_type %ptr.loc16_3 [symbolic = %require_complete.loc16_3 (constants.%require_complete.132)] // CHECK:STDOUT: @@ -116,12 +116,12 @@ fn F(T:! type) { // CHECK:STDOUT: %n: @F.%T.loc15_6.1 (%T) = bind_name n, %.loc17_14.2 // CHECK:STDOUT: %facet_value.loc16_3.1: %type_where = facet_value constants.%ptr.79f, () [symbolic = %facet_value.loc16_3.2 (constants.%facet_value)] // CHECK:STDOUT: %.loc16_3.1: %type_where = converted constants.%ptr.79f, %facet_value.loc16_3.1 [symbolic = %facet_value.loc16_3.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0: @F.%.loc16_3.2 (%.280) = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc16_3.2 (%.0f0) = impl_witness_access constants.%Destroy.impl_witness.5e2, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c0)] // CHECK:STDOUT: %bound_method.loc16_3.1: = bound_method %p.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %bound_method.loc16_3.2: = bound_method %p.var, %specific_fn // CHECK:STDOUT: %addr: @F.%ptr.loc16_3 (%ptr.a13) = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/generic/complete_type.carbon b/toolchain/check/testdata/generic/complete_type.carbon index d312702b09d11..8059f381119a4 100644 --- a/toolchain/check/testdata/generic/complete_type.carbon +++ b/toolchain/check/testdata/generic/complete_type.carbon @@ -215,17 +215,17 @@ fn G() { F(B); } // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.57a: %type_where = facet_value %ptr.79f, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.5e2: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] // CHECK:STDOUT: %require_complete.132: = require_complete_type %ptr.a13 [symbolic] -// CHECK:STDOUT: %Destroy.facet.b1a: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] -// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b1a [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %Destroy.facet.136: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.5e2) [symbolic] +// CHECK:STDOUT: %.0f0: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.136 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.195: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.57a) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%B) [concrete] @@ -235,13 +235,13 @@ fn G() { F(B); } // CHECK:STDOUT: %complete_type.3bf: = complete_type_witness %ptr.e79 [concrete] // CHECK:STDOUT: %pattern_type.960: type = pattern_type %ptr.e79 [concrete] // CHECK:STDOUT: %facet_value.888: %type_where = facet_value %ptr.e79, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.211: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] -// CHECK:STDOUT: %Destroy.facet.3ce: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.211) [concrete] -// CHECK:STDOUT: %.c0d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.3ce [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5d8: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.ee7: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %Destroy.facet.4ee: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.ee7) [concrete] +// CHECK:STDOUT: %.9fa: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.4ee [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ba6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.3f1: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ba6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.3fb: type = ptr_type %ptr.e79 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5d8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.888) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.3f1, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.888) [concrete] // CHECK:STDOUT: %complete_type.c9f: = complete_type_witness %ptr.3fb [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -252,8 +252,8 @@ fn G() { F(B); } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -292,12 +292,12 @@ fn G() { F(B); } // CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc7_11.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc8 (constants.%require_complete.4ae)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %ptr.loc7_11.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.71a)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.b1a)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.280)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.13f)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.13f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.5e2)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.136)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.0f0)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c0)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.195)] // CHECK:STDOUT: %ptr.loc7_3: type = ptr_type %ptr.loc7_11.2 [symbolic = %ptr.loc7_3 (constants.%ptr.a13)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7_3 [symbolic = %require_complete.loc7_3 (constants.%require_complete.132)] // CHECK:STDOUT: @@ -318,12 +318,12 @@ fn G() { F(B); } // CHECK:STDOUT: %.loc8_3: ref @F.%T.loc6_6.1 (%T) = deref %.loc8_4 // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%ptr.79f, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] // CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%ptr.79f, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] -// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.280) = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.0f0) = impl_witness_access constants.%Destroy.impl_witness.5e2, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c0)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.57a) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.57a) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.195)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn // CHECK:STDOUT: %addr: @F.%ptr.loc7_3 (%ptr.a13) = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -350,12 +350,12 @@ fn G() { F(B); } // CHECK:STDOUT: %pattern_type => constants.%pattern_type.960 // CHECK:STDOUT: %require_complete.loc8 => constants.%complete_type.357 // CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.888 -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.211 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.3ce -// CHECK:STDOUT: %.loc7_3.2 => constants.%.c0d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.fc9 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.5d8 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.ee7 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.4ee +// CHECK:STDOUT: %.loc7_3.2 => constants.%.9fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ba6 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3f1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ba // CHECK:STDOUT: %ptr.loc7_3 => constants.%ptr.3fb // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.c9f // CHECK:STDOUT: } @@ -379,17 +379,17 @@ fn G() { F(B); } // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.57a: %type_where = facet_value %ptr.79f, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.5e2: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] // CHECK:STDOUT: %require_complete.132: = require_complete_type %ptr.a13 [symbolic] -// CHECK:STDOUT: %Destroy.facet.b1a: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] -// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b1a [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.57a) [symbolic] +// CHECK:STDOUT: %Destroy.facet.136: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.5e2) [symbolic] +// CHECK:STDOUT: %.0f0: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.136 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.195: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.57a) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%B) [concrete] @@ -397,13 +397,13 @@ fn G() { F(B); } // CHECK:STDOUT: %complete_type.3bf: = complete_type_witness %ptr.e79 [concrete] // CHECK:STDOUT: %pattern_type.960: type = pattern_type %ptr.e79 [concrete] // CHECK:STDOUT: %facet_value.888: %type_where = facet_value %ptr.e79, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.211: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] -// CHECK:STDOUT: %Destroy.facet.3ce: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.211) [concrete] -// CHECK:STDOUT: %.c0d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.3ce [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.888) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5d8: %DestroyT.as_type.as.Destroy.impl.Op.type.fc9 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.ee7: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %Destroy.facet.4ee: %Destroy.type = facet_value %ptr.e79, (%Destroy.impl_witness.ee7) [concrete] +// CHECK:STDOUT: %.9fa: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.4ee [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ba6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.888) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.3f1: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ba6 = struct_value () [concrete] // CHECK:STDOUT: %ptr.3fb: type = ptr_type %ptr.e79 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5d8, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.888) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.3f1, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.888) [concrete] // CHECK:STDOUT: %complete_type.c9f: = complete_type_witness %ptr.3fb [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -414,8 +414,8 @@ fn G() { F(B); } // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -447,12 +447,12 @@ fn G() { F(B); } // CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc7_11.2 [symbolic = %pattern_type (constants.%pattern_type.afe)] // CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc14 (constants.%require_complete.4ae)] // CHECK:STDOUT: %facet_value.loc7_3.2: %type_where = facet_value %ptr.loc7_11.2, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.71a)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.b1a)] -// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.280)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.13f)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.13f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.5e2)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc7_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.136)] +// CHECK:STDOUT: %.loc7_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc7_3.2 (constants.%.0f0)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c0)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc7_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.195)] // CHECK:STDOUT: %ptr.loc7_3: type = ptr_type %ptr.loc7_11.2 [symbolic = %ptr.loc7_3 (constants.%ptr.a13)] // CHECK:STDOUT: %require_complete.loc7_3: = require_complete_type %ptr.loc7_3 [symbolic = %require_complete.loc7_3 (constants.%require_complete.132)] // CHECK:STDOUT: @@ -473,12 +473,12 @@ fn G() { F(B); } // CHECK:STDOUT: %.loc14_3: ref @F.%T.loc6_6.1 (%T) = deref %.loc14_4 // CHECK:STDOUT: %facet_value.loc7_3.1: %type_where = facet_value constants.%ptr.79f, () [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] // CHECK:STDOUT: %.loc7_3.1: %type_where = converted constants.%ptr.79f, %facet_value.loc7_3.1 [symbolic = %facet_value.loc7_3.2 (constants.%facet_value.57a)] -// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.280) = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.b86)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc7_3.2 (%.0f0) = impl_witness_access constants.%Destroy.impl_witness.5e2, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c0)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.57a) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a63)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.57a) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.195)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_fn // CHECK:STDOUT: %addr: @F.%ptr.loc7_3 (%ptr.a13) = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -505,12 +505,12 @@ fn G() { F(B); } // CHECK:STDOUT: %pattern_type => constants.%pattern_type.960 // CHECK:STDOUT: %require_complete.loc14 => // CHECK:STDOUT: %facet_value.loc7_3.2 => constants.%facet_value.888 -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.211 -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.3ce -// CHECK:STDOUT: %.loc7_3.2 => constants.%.c0d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.fc9 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.5d8 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3ca +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.ee7 +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.4ee +// CHECK:STDOUT: %.loc7_3.2 => constants.%.9fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.ba6 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3f1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ba // CHECK:STDOUT: %ptr.loc7_3 => constants.%ptr.3fb // CHECK:STDOUT: %require_complete.loc7_3 => constants.%complete_type.c9f // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/generic/dependent_param.carbon b/toolchain/check/testdata/generic/dependent_param.carbon index 20a2bb2e993c7..3b2929bd48066 100644 --- a/toolchain/check/testdata/generic/dependent_param.carbon +++ b/toolchain/check/testdata/generic/dependent_param.carbon @@ -34,22 +34,22 @@ 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.117: type = class_type @Outer, @Outer(%T.be8) [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.be8 [symbolic] -// CHECK:STDOUT: %U.afe: %T.as_type = bind_symbolic_name U, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.be8 [symbolic] +// CHECK:STDOUT: %U.cc0: %T.binding.as_type = bind_symbolic_name U, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Inner.type.e8b: type = generic_class_type @Inner, @Outer(%T.be8) [symbolic] // CHECK:STDOUT: %Inner.generic.215: %Inner.type.e8b = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.38e: type = class_type @Inner, @Inner(%T.be8, %U.afe) [symbolic] -// CHECK:STDOUT: %Inner.Get.type.31a: type = fn_type @Inner.Get, @Inner(%T.be8, %U.afe) [symbolic] -// CHECK:STDOUT: %Inner.Get.ce1: %Inner.Get.type.31a = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.07c: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Inner.69b: type = class_type @Inner, @Inner(%T.be8, %U.cc0) [symbolic] +// CHECK:STDOUT: %Inner.Get.type.f93: type = fn_type @Inner.Get, @Inner(%T.be8, %U.cc0) [symbolic] +// CHECK:STDOUT: %Inner.Get.500: %Inner.Get.type.f93 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.1cd: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15: = lookup_impl_witness %T.be8, @Copy [symbolic] // CHECK:STDOUT: %.427: type = fn_type_with_self_type %Copy.Op.type, %T.be8 [symbolic] // CHECK:STDOUT: %impl.elem0.168: %.427 = impl_witness_access %Copy.lookup_impl_witness.e15, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.2ce: = specific_impl_function %impl.elem0.168, @Copy.Op(%T.be8) [symbolic] -// CHECK:STDOUT: %bound_method.67a: = bound_method %U.afe, %impl.elem0.168 [symbolic] -// CHECK:STDOUT: %bound_method.e09: = bound_method %U.afe, %specific_impl_fn.2ce [symbolic] +// CHECK:STDOUT: %bound_method.4cf: = bound_method %U.cc0, %impl.elem0.168 [symbolic] +// CHECK:STDOUT: %bound_method.c59: = bound_method %U.cc0, %specific_impl_fn.2ce [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -131,59 +131,59 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.2: %Copy.type, %U.loc5_15.2: @Inner.%T.as_type.loc5_19.1 (%T.as_type)) { +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_13.2: %Copy.type, %U.loc5_15.2: @Inner.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.Get.type: type = fn_type @Inner.Get, @Inner(%T, %U.loc5_15.1) [symbolic = %Inner.Get.type (constants.%Inner.Get.type.31a)] -// CHECK:STDOUT: %Inner.Get: @Inner.%Inner.Get.type (%Inner.Get.type.31a) = struct_value () [symbolic = %Inner.Get (constants.%Inner.Get.ce1)] +// CHECK:STDOUT: %Inner.Get.type: type = fn_type @Inner.Get, @Inner(%T, %U.loc5_15.1) [symbolic = %Inner.Get.type (constants.%Inner.Get.type.f93)] +// CHECK:STDOUT: %Inner.Get: @Inner.%Inner.Get.type (%Inner.Get.type.f93) = struct_value () [symbolic = %Inner.Get (constants.%Inner.Get.500)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.Get.decl: @Inner.%Inner.Get.type (%Inner.Get.type.31a) = fn_decl @Inner.Get [symbolic = @Inner.%Inner.Get (constants.%Inner.Get.ce1)] { -// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param0 [concrete] +// CHECK:STDOUT: %Inner.Get.decl: @Inner.%Inner.Get.type (%Inner.Get.type.f93) = fn_decl @Inner.Get [symbolic = @Inner.%Inner.Get (constants.%Inner.Get.500)] { +// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_13.2 [symbolic = %T (constants.%T.be8)] -// 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: type = converted %T.ref, %T.as_type.loc7_17.2 [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)] -// 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: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc7_17: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// 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: } // CHECK:STDOUT: // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.38e +// CHECK:STDOUT: .Self = constants.%Inner.69b // 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_13.2: %Copy.type, @Inner.%U.loc5_15.2: @Inner.%T.as_type.loc5_19.1 (%T.as_type)) { +// CHECK:STDOUT: generic fn @Inner.Get(@Outer.%T.loc4_13.2: %Copy.type, @Inner.%U.loc5_15.2: @Inner.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: %T: %Copy.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.be8)] -// 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: %pattern_type: type = pattern_type %T.as_type.loc7_17.1 [symbolic = %pattern_type (constants.%pattern_type.965801.1)] +// 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.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_17.1 [symbolic = %require_complete (constants.%require_complete.07c)] -// CHECK:STDOUT: %U: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = bind_symbolic_name U, 1 [symbolic = %U (constants.%U.afe)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.1cd)] +// CHECK:STDOUT: %U: @Inner.Get.%T.binding.as_type (%T.binding.as_type) = bind_symbolic_name U, 1 [symbolic = %U (constants.%U.cc0)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15)] // CHECK:STDOUT: %.loc7_28.2: type = fn_type_with_self_type constants.%Copy.Op.type, %T [symbolic = %.loc7_28.2 (constants.%.427)] // CHECK:STDOUT: %impl.elem0.loc7_28.2: @Inner.Get.%.loc7_28.2 (%.427) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.168)] -// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.67a)] +// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.4cf)] // CHECK:STDOUT: %specific_impl_fn.loc7_28.2: = specific_impl_function %impl.elem0.loc7_28.2, @Copy.Op(%T) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.2ce)] -// 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.e09)] +// 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.c59)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) { +// CHECK:STDOUT: fn() -> %return.param: @Inner.Get.%T.binding.as_type (%T.binding.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = name_ref U, @Inner.%U.loc5_15.2 [symbolic = %U (constants.%U.afe)] +// CHECK:STDOUT: %U.ref: @Inner.Get.%T.binding.as_type (%T.binding.as_type) = name_ref U, @Inner.%U.loc5_15.2 [symbolic = %U (constants.%U.cc0)] // CHECK:STDOUT: %impl.elem0.loc7_28.1: @Inner.Get.%.loc7_28.2 (%.427) = impl_witness_access constants.%Copy.lookup_impl_witness.e15, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.168)] -// 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.67a)] +// 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.4cf)] // CHECK:STDOUT: %specific_impl_fn.loc7_28.1: = specific_impl_function %impl.elem0.loc7_28.1, @Copy.Op(constants.%T.be8) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.2ce)] -// 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.e09)] -// CHECK:STDOUT: %.loc7_14: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = splice_block %return {} -// CHECK:STDOUT: %.loc7_28.1: init @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = call %bound_method.loc7_28.2(%U.ref) to %.loc7_14 +// 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.c59)] +// CHECK:STDOUT: %.loc7_14: ref @Inner.Get.%T.binding.as_type (%T.binding.as_type) = splice_block %return {} +// CHECK:STDOUT: %.loc7_28.1: init @Inner.Get.%T.binding.as_type (%T.binding.as_type) = call %bound_method.loc7_28.2(%U.ref) to %.loc7_14 // CHECK:STDOUT: return %.loc7_28.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -225,21 +225,21 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.215 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%T.be8, constants.%U.afe) { +// CHECK:STDOUT: specific @Inner(constants.%T.be8, constants.%U.cc0) { // CHECK:STDOUT: %T => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc5_19.1 => constants.%T.as_type -// CHECK:STDOUT: %U.loc5_15.1 => constants.%U.afe -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %U.loc5_15.1 => constants.%U.cc0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.31a -// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.ce1 +// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.f93 +// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.500 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.Get(constants.%T.be8, constants.%U.afe) { +// CHECK:STDOUT: specific @Inner.Get(constants.%T.be8, constants.%U.cc0) { // CHECK:STDOUT: %T => constants.%T.be8 -// CHECK:STDOUT: %T.as_type.loc7_17.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%Copy.facet.c49) { @@ -252,7 +252,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%Copy.facet.c49, constants.%int_42.c68) { // CHECK:STDOUT: %T => constants.%Copy.facet.c49 -// CHECK:STDOUT: %T.as_type.loc5_19.1 => constants.%i32 +// CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %U.loc5_15.1 => constants.%int_42.c68 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: @@ -263,7 +263,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.Get(constants.%Copy.facet.c49, constants.%int_42.c68) { // CHECK:STDOUT: %T => constants.%Copy.facet.c49 -// CHECK:STDOUT: %T.as_type.loc7_17.1 => constants.%i32 +// CHECK:STDOUT: %T.binding.as_type => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon b/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon index 0e337756fffd9..5116f394fcadc 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.ed3b32.2: type = assoc_entity_type @A, @A(%CC) [symbolic] // CHECK:STDOUT: %assoc0.ce3509.2: %A.assoc_type.ed3b32.2 = assoc_entity element0, @A.%X [symbolic] // CHECK:STDOUT: %require_complete.34a: = require_complete_type %A.type.d88d48.2 [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.c063ed.1 [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.c063ed.1 [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.ddb77a.1: = lookup_impl_witness %.Self.c063ed.1, @A, @A(%CC) [symbolic] // CHECK:STDOUT: %impl.elem0.7afc4b.1: type = impl_witness_access %A.lookup_impl_witness.ddb77a.1, element0 [symbolic] // CHECK:STDOUT: %A_where.type.6f52c8.1: type = facet_type <@A, @A(%CC) where %impl.elem0.7afc4b.1 = %CC> [symbolic] @@ -143,8 +143,8 @@ fn H(T:! type) { // CHECK:STDOUT: %.Self.ref: @C.F.%A.type.loc11_16.1 (%A.type.d88d48.2) = name_ref .Self, %.Self.3 [symbolic = %.Self.1 (constants.%.Self.c063ed.1)] // CHECK:STDOUT: %.loc11_24.1: @C.F.%A.assoc_type (%A.assoc_type.ed3b32.2) = specific_constant @X.%assoc0, @A(constants.%CC) [symbolic = %assoc0 (constants.%assoc0.ce3509.2)] // CHECK:STDOUT: %X.ref: @C.F.%A.assoc_type (%A.assoc_type.ed3b32.2) = name_ref X, %.loc11_24.1 [symbolic = %assoc0 (constants.%assoc0.ce3509.2)] -// CHECK:STDOUT: %.Self.as_type.loc11_24.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_24.1 (constants.%.Self.as_type)] -// CHECK:STDOUT: %.loc11_24.2: type = converted %.Self.ref, %.Self.as_type.loc11_24.2 [symbolic = %.Self.as_type.loc11_24.1 (constants.%.Self.as_type)] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] +// CHECK:STDOUT: %.loc11_24.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc11_24.2: type = impl_witness_access constants.%A.lookup_impl_witness.ddb77a.1, element0 [symbolic = %impl.elem0.loc11_24.1 (constants.%impl.elem0.7afc4b.1)] // CHECK:STDOUT: %CC.ref.loc11_29: type = name_ref CC, @C.%CC.loc6_9.2 [symbolic = %CC (constants.%CC)] // CHECK:STDOUT: %.loc11_18.2: type = where_expr %.Self.3 [symbolic = %A_where.type (constants.%A_where.type.6f52c8.1)] { @@ -190,7 +190,7 @@ fn H(T:! type) { // CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc11_16.1 [symbolic = %require_complete (constants.%require_complete.34a)] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%CC) [symbolic = %A.assoc_type (constants.%A.assoc_type.ed3b32.2)] // CHECK:STDOUT: %assoc0: @C.F.%A.assoc_type (%A.assoc_type.ed3b32.2) = assoc_entity element0, @A.%X [symbolic = %assoc0 (constants.%assoc0.ce3509.2)] -// CHECK:STDOUT: %.Self.as_type.loc11_24.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc11_24.1 (constants.%.Self.as_type)] +// 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: %A.lookup_impl_witness: = lookup_impl_witness %.Self.1, @A, @A(%CC) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.ddb77a.1)] // CHECK:STDOUT: %impl.elem0.loc11_24.1: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_24.1 (constants.%impl.elem0.7afc4b.1)] // CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%CC) where %impl.elem0.loc11_24.1 = %CC> [symbolic = %A_where.type (constants.%A_where.type.6f52c8.1)] @@ -246,7 +246,7 @@ fn H(T:! type) { // CHECK:STDOUT: %require_complete => constants.%require_complete.34a // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.ed3b32.2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.ce3509.2 -// CHECK:STDOUT: %.Self.as_type.loc11_24.1 => constants.%.Self.as_type +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.ddb77a.1 // CHECK:STDOUT: %impl.elem0.loc11_24.1 => constants.%impl.elem0.7afc4b.1 // CHECK:STDOUT: %A_where.type => constants.%A_where.type.6f52c8.1 @@ -320,17 +320,17 @@ fn H(T:! type) { // CHECK:STDOUT: %B.generic: %B.type.bf2 = struct_value () [concrete] // CHECK:STDOUT: %.Self.c063ed.1: %A.type.d88d48.1 = bind_symbolic_name .Self [symbolic] // CHECK:STDOUT: %require_complete.34a: = require_complete_type %A.type.d88d48.1 [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.c063ed.1 [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.c063ed.1 [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.ddb77a.1: = lookup_impl_witness %.Self.c063ed.1, @A, @A(%AA) [symbolic] // CHECK:STDOUT: %impl.elem0.7afc4b.1: type = impl_witness_access %A.lookup_impl_witness.ddb77a.1, element0 [symbolic] // CHECK:STDOUT: %A_where.type.ecbf58.1: type = facet_type <@A, @A(%AA) where %impl.elem0.7afc4b.1 = %empty_tuple.type> [symbolic] // CHECK:STDOUT: %BB.afa: %A_where.type.ecbf58.1 = bind_symbolic_name BB, 1 [symbolic] // CHECK:STDOUT: %pattern_type.22c: type = pattern_type %A_where.type.ecbf58.1 [symbolic] -// CHECK:STDOUT: %BB.as_type: type = facet_access_type %BB.afa [symbolic] +// CHECK:STDOUT: %BB.binding.as_type: type = symbolic_binding_type BB, 1, %BB.afa [symbolic] // CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %AA [symbolic] // CHECK:STDOUT: %B.type.6d756f.1: type = facet_type <@B, @B(%ptr.79f131.1)> [symbolic] // CHECK:STDOUT: %require_complete.672f1b.1: = require_complete_type %B.type.6d756f.1 [symbolic] -// CHECK:STDOUT: %B.impl_witness.ba0: = impl_witness file.%B.impl_witness_table.loc9, @BB.as_type.as.B.impl(%AA, %BB.afa) [symbolic] +// CHECK:STDOUT: %B.impl_witness.825: = impl_witness file.%B.impl_witness_table.loc9, @BB.binding.as_type.as.B.impl(%AA, %BB.afa) [symbolic] // CHECK:STDOUT: %DD: type = bind_symbolic_name DD, 0 [symbolic] // CHECK:STDOUT: %D.432: type = class_type @D, @D(%DD) [symbolic] // CHECK:STDOUT: %T.336: type = bind_symbolic_name T, 1 [symbolic] @@ -359,13 +359,13 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { -// CHECK:STDOUT: impl_decl @BB.as_type.as.B.impl [concrete] { +// CHECK:STDOUT: impl_decl @BB.binding.as_type.as.B.impl [concrete] { // CHECK:STDOUT: %AA.patt: %pattern_type.98f = symbolic_binding_pattern AA, 0 [concrete] -// CHECK:STDOUT: %BB.patt: @BB.as_type.as.B.impl.%pattern_type (%pattern_type.22c) = symbolic_binding_pattern BB, 1 [concrete] +// CHECK:STDOUT: %BB.patt: @BB.binding.as_type.as.B.impl.%pattern_type (%pattern_type.22c) = symbolic_binding_pattern BB, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %BB.ref: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1) = name_ref BB, %BB.loc9_25.1 [symbolic = %BB.loc9_25.2 (constants.%BB.afa)] -// 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: %BB.ref: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1) = name_ref BB, %BB.loc9_25.1 [symbolic = %BB.loc9_25.2 (constants.%BB.afa)] +// 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: %B.ref: %B.type.bf2 = name_ref B, file.%B.decl [concrete = constants.%B.generic] // CHECK:STDOUT: %AA.ref.loc9_59: type = name_ref AA, %AA.loc9_14.1 [symbolic = %AA.loc9_14.2 (constants.%AA)] // CHECK:STDOUT: %ptr.loc9_61.1: type = ptr_type %AA.ref.loc9_59 [symbolic = %ptr.loc9_61.2 (constants.%ptr.79f131.1)] @@ -378,11 +378,11 @@ fn H(T:! type) { // CHECK:STDOUT: %AA.ref.loc9_32: type = name_ref AA, %AA.loc9_14.1 [symbolic = %AA.loc9_14.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.d88d48.1)] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.d88d48.1) = name_ref .Self, %.Self.3 [symbolic = %.Self.4 (constants.%.Self.c063ed.1)] -// CHECK:STDOUT: %.loc9_42.1: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = specific_constant @X.%assoc0, @A(constants.%AA) [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.1 [symbolic = %assoc0 (constants.%assoc0)] -// 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.2: type = converted %.Self.ref, %.Self.as_type.loc9_42.1 [symbolic = %.Self.as_type.loc9_42.2 (constants.%.Self.as_type)] +// CHECK:STDOUT: %.Self.ref: @BB.binding.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.d88d48.1) = name_ref .Self, %.Self.3 [symbolic = %.Self.4 (constants.%.Self.c063ed.1)] +// CHECK:STDOUT: %.loc9_42.1: @BB.binding.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = specific_constant @X.%assoc0, @A(constants.%AA) [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.1 [symbolic = %assoc0 (constants.%assoc0)] +// 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.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc9_42.1: type = impl_witness_access constants.%A.lookup_impl_witness.ddb77a.1, element0 [symbolic = %impl.elem0.loc9_42.2 (constants.%impl.elem0.7afc4b.1)] // CHECK:STDOUT: %.loc9_48.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_48.2: type = converted %.loc9_48.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -391,30 +391,30 @@ fn H(T:! type) { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc9_42.1, %.loc9_48.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %BB.loc9_25.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1) = bind_symbolic_name BB, 1 [symbolic = %BB.loc9_25.2 (constants.%BB.afa)] +// CHECK:STDOUT: %BB.loc9_25.1: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1) = bind_symbolic_name BB, 1 [symbolic = %BB.loc9_25.2 (constants.%BB.afa)] // CHECK:STDOUT: } -// CHECK:STDOUT: %B.impl_witness_table.loc9 = impl_witness_table (), @BB.as_type.as.B.impl [concrete] -// CHECK:STDOUT: %B.impl_witness.loc9: = impl_witness %B.impl_witness_table.loc9, @BB.as_type.as.B.impl(constants.%AA, constants.%BB.afa) [symbolic = @BB.as_type.as.B.impl.%B.impl_witness (constants.%B.impl_witness.ba0)] +// CHECK:STDOUT: %B.impl_witness_table.loc9 = impl_witness_table (), @BB.binding.as_type.as.B.impl [concrete] +// CHECK:STDOUT: %B.impl_witness.loc9: = impl_witness %B.impl_witness_table.loc9, @BB.binding.as_type.as.B.impl(constants.%AA, constants.%BB.afa) [symbolic = @BB.binding.as_type.as.B.impl.%B.impl_witness (constants.%B.impl_witness.825)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @BB.as_type.as.B.impl(%AA.loc9_14.1: type, %BB.loc9_25.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1)) { +// CHECK:STDOUT: generic impl @BB.binding.as_type.as.B.impl(%AA.loc9_14.1: type, %BB.loc9_25.1: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1)) { // CHECK:STDOUT: %AA.loc9_14.2: type = bind_symbolic_name AA, 0 [symbolic = %AA.loc9_14.2 (constants.%AA)] // CHECK:STDOUT: %A.type.loc9_34.2: type = facet_type <@A, @A(%AA.loc9_14.2)> [symbolic = %A.type.loc9_34.2 (constants.%A.type.d88d48.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.34a)] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%AA.loc9_14.2) [symbolic = %A.assoc_type (constants.%A.assoc_type)] -// CHECK:STDOUT: %assoc0: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = assoc_entity element0, @A.%X [symbolic = %assoc0 (constants.%assoc0)] -// 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: %assoc0: @BB.binding.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = assoc_entity element0, @A.%X [symbolic = %assoc0 (constants.%assoc0)] +// 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: %A.lookup_impl_witness: = lookup_impl_witness %.Self.4, @A, @A(%AA.loc9_14.2) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.ddb77a.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.7afc4b.1)] // CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%AA.loc9_14.2) where %impl.elem0.loc9_42.2 = constants.%empty_tuple.type> [symbolic = %A_where.type (constants.%A_where.type.ecbf58.1)] -// CHECK:STDOUT: %BB.loc9_25.2: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1) = bind_symbolic_name BB, 1 [symbolic = %BB.loc9_25.2 (constants.%BB.afa)] +// CHECK:STDOUT: %BB.loc9_25.2: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.ecbf58.1) = bind_symbolic_name BB, 1 [symbolic = %BB.loc9_25.2 (constants.%BB.afa)] // CHECK:STDOUT: %pattern_type: type = pattern_type %A_where.type [symbolic = %pattern_type (constants.%pattern_type.22c)] -// CHECK:STDOUT: %BB.as_type.loc9_51.2: type = facet_access_type %BB.loc9_25.2 [symbolic = %BB.as_type.loc9_51.2 (constants.%BB.as_type)] +// CHECK:STDOUT: %BB.binding.as_type: type = symbolic_binding_type BB, 1, %BB.loc9_25.2 [symbolic = %BB.binding.as_type (constants.%BB.binding.as_type)] // CHECK:STDOUT: %ptr.loc9_61.2: type = ptr_type %AA.loc9_14.2 [symbolic = %ptr.loc9_61.2 (constants.%ptr.79f131.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.6d756f.1)] // CHECK:STDOUT: %require_complete.loc9_62: = require_complete_type %B.type.loc9_62.2 [symbolic = %require_complete.loc9_62 (constants.%require_complete.672f1b.1)] -// CHECK:STDOUT: %B.impl_witness: = impl_witness file.%B.impl_witness_table.loc9, @BB.as_type.as.B.impl(%AA.loc9_14.2, %BB.loc9_25.2) [symbolic = %B.impl_witness (constants.%B.impl_witness.ba0)] +// CHECK:STDOUT: %B.impl_witness: = impl_witness file.%B.impl_witness_table.loc9, @BB.binding.as_type.as.B.impl(%AA.loc9_14.2, %BB.loc9_25.2) [symbolic = %B.impl_witness (constants.%B.impl_witness.825)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -469,24 +469,24 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @BB.as_type.as.B.impl(constants.%AA, constants.%BB.afa) { +// CHECK:STDOUT: specific @BB.binding.as_type.as.B.impl(constants.%AA, constants.%BB.afa) { // CHECK:STDOUT: %AA.loc9_14.2 => constants.%AA // CHECK:STDOUT: %A.type.loc9_34.2 => constants.%A.type.d88d48.1 // CHECK:STDOUT: %.Self.4 => constants.%.Self.c063ed.1 // CHECK:STDOUT: %require_complete.loc9_42 => constants.%require_complete.34a // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type // CHECK:STDOUT: %assoc0 => constants.%assoc0 -// CHECK:STDOUT: %.Self.as_type.loc9_42.2 => constants.%.Self.as_type +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.ddb77a.1 // CHECK:STDOUT: %impl.elem0.loc9_42.2 => constants.%impl.elem0.7afc4b.1 // CHECK:STDOUT: %A_where.type => constants.%A_where.type.ecbf58.1 // CHECK:STDOUT: %BB.loc9_25.2 => constants.%BB.afa // CHECK:STDOUT: %pattern_type => constants.%pattern_type.22c -// CHECK:STDOUT: %BB.as_type.loc9_51.2 => constants.%BB.as_type +// CHECK:STDOUT: %BB.binding.as_type => constants.%BB.binding.as_type // CHECK:STDOUT: %ptr.loc9_61.2 => constants.%ptr.79f131.1 // CHECK:STDOUT: %B.type.loc9_62.2 => constants.%B.type.6d756f.1 // CHECK:STDOUT: %require_complete.loc9_62 => constants.%require_complete.672f1b.1 -// CHECK:STDOUT: %B.impl_witness => constants.%B.impl_witness.ba0 +// CHECK:STDOUT: %B.impl_witness => constants.%B.impl_witness.825 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%DD) { diff --git a/toolchain/check/testdata/generic/local.carbon b/toolchain/check/testdata/generic/local.carbon index 8ad0213d9f8b8..8dde4f116e45c 100644 --- a/toolchain/check/testdata/generic/local.carbon +++ b/toolchain/check/testdata/generic/local.carbon @@ -97,10 +97,10 @@ class C(C:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.d45, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.782: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b6b: %DestroyT.as_type.as.Destroy.impl.Op.type.782 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.da4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.d69: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.da4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.9c7: type = ptr_type %C.d45 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b6b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.d69, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -185,11 +185,11 @@ class C(C:! type) { // CHECK:STDOUT: %v: ref %C.d45 = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.d45, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C.d45, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b6b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b6b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d69 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d69, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.9c7 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index 1ed16621d2ef9..d820c57b915c8 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -251,16 +251,16 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.9ff: %Destroy.type = bind_symbolic_name T, 0, template [template] // CHECK:STDOUT: %pattern_type.3ab: type = pattern_type %Destroy.type [concrete] -// CHECK:STDOUT: %T.as_type.a11: type = facet_access_type %T.9ff [template] -// CHECK:STDOUT: %pattern_type.d62: type = pattern_type %T.as_type.a11 [template] +// CHECK:STDOUT: %T.binding.as_type.ef2: type = symbolic_binding_type T, 0, template, %T.9ff [template] +// CHECK:STDOUT: %pattern_type.2f2: type = pattern_type %T.binding.as_type.ef2 [template] // 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: %require_complete.f78: = require_complete_type %T.as_type.a11 [template] +// CHECK:STDOUT: %require_complete.cf3: = require_complete_type %T.binding.as_type.ef2 [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.57b: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.a11)> [template] +// CHECK:STDOUT: %ImplicitAs.type.587: type = facet_type <@ImplicitAs, @ImplicitAs(%T.binding.as_type.ef2)> [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] @@ -272,16 +272,16 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.9ff, @Destroy [template] // CHECK:STDOUT: %.8eb: type = fn_type_with_self_type %Destroy.Op.type, %T.9ff [template] // CHECK:STDOUT: %impl.elem0.b2e: %.8eb = impl_witness_access %Destroy.lookup_impl_witness, element0 [template] -// CHECK:STDOUT: %ptr.983a2f.2: type = ptr_type %T.as_type.a11 [template] +// CHECK:STDOUT: %ptr.8654e8.2: type = ptr_type %T.binding.as_type.ef2 [template] // CHECK:STDOUT: %specific_impl_fn.b6b: = specific_impl_function %impl.elem0.b2e, @Destroy.Op(%T.9ff) [template] -// CHECK:STDOUT: %require_complete.a61: = require_complete_type %ptr.983a2f.2 [template] +// CHECK:STDOUT: %require_complete.ebb: = require_complete_type %ptr.8654e8.2 [template] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -307,8 +307,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.3ab = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.d62) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.d62) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.2f2) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.2f2) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23: type = splice_block %Destroy.ref [concrete = constants.%Destroy.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -316,60 +316,60 @@ 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_15.2: %Destroy.type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T.9ff)] -// CHECK:STDOUT: %x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = 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.a11)] { +// CHECK:STDOUT: %x.param: @F.%T.binding.as_type (%T.binding.as_type.ef2) = 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.ef2)] { // CHECK:STDOUT: %T.ref.loc4: %Destroy.type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T.9ff)] -// 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.a11)] -// 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.a11)] +// CHECK:STDOUT: %T.as_type.loc4: type = facet_access_type %T.ref.loc4 [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] +// CHECK:STDOUT: %.loc4_36.2: type = converted %T.ref.loc4, %T.as_type.loc4 [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = bind_name x, %x.param +// CHECK:STDOUT: %x: @F.%T.binding.as_type (%T.binding.as_type.ef2) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_15.2: %Destroy.type) { // CHECK:STDOUT: %T.loc4_15.1: %Destroy.type = bind_symbolic_name T, 0, template [template = %T.loc4_15.1 (constants.%T.9ff)] -// CHECK:STDOUT: %T.as_type.loc4_36.1: type = facet_access_type %T.loc4_15.1 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc4_36.1 [template = %pattern_type (constants.%pattern_type.d62)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, template, %T.loc4_15.1 [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [template = %pattern_type (constants.%pattern_type.2f2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4: = require_complete_type %T.as_type.loc4_36.1 [template = %require_complete.loc4 (constants.%require_complete.f78)] -// 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.57b)] +// CHECK:STDOUT: %require_complete.loc4: = require_complete_type %T.binding.as_type [template = %require_complete.loc4 (constants.%require_complete.cf3)] +// 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.587)] // CHECK:STDOUT: %.loc14_3.4: = access_member_action %ImplicitAs.type.loc14_3.1, Convert [template] // CHECK:STDOUT: %.loc14_3.5: type = type_of_inst %.loc14_3.4 [template] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %T.loc4_15.1, @Destroy [template = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %.loc14_3.6: type = fn_type_with_self_type constants.%Destroy.Op.type, %T.loc4_15.1 [template = %.loc14_3.6 (constants.%.8eb)] // CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.6 (%.8eb) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e)] // CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.Op(%T.loc4_15.1) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6b)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc4_36.1 [template = %ptr (constants.%ptr.983a2f.2)] -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %ptr [template = %require_complete.loc14 (constants.%require_complete.a61)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type [template = %ptr (constants.%ptr.8654e8.2)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %ptr [template = %require_complete.loc14 (constants.%require_complete.ebb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.a11)) { +// CHECK:STDOUT: fn(%x.param: @F.%T.binding.as_type (%T.binding.as_type.ef2)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.d62) = binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.d62) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.2f2) = binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.2f2) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = var %v.var_patt +// CHECK:STDOUT: %v.var: ref @F.%T.binding.as_type (%T.binding.as_type.ef2) = 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.as_type.a11)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.57b)] +// CHECK:STDOUT: %ImplicitAs.type.loc14_3.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%T.binding.as_type.ef2)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.587)] // CHECK:STDOUT: %.loc14_3.1: @F.%.loc14_3.5 (@F.%.loc14_3.5) = splice_inst %.loc14_3.4 -// CHECK:STDOUT: %.loc14_3.2: @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = converted %int_0, [concrete = ] +// CHECK:STDOUT: %.loc14_3.2: @F.%T.binding.as_type (%T.binding.as_type.ef2) = converted %int_0, [concrete = ] // CHECK:STDOUT: assign %v.var, -// CHECK:STDOUT: %.loc14_10.1: type = splice_block %.loc14_10.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] { +// CHECK:STDOUT: %.loc14_10.1: type = splice_block %.loc14_10.2 [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] { // CHECK:STDOUT: %T.ref.loc14: %Destroy.type = name_ref T, %T.loc4_15.2 [template = %T.loc4_15.1 (constants.%T.9ff)] -// CHECK:STDOUT: %T.as_type.loc14_10: type = facet_access_type %T.ref.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] -// CHECK:STDOUT: %.loc14_10.2: type = converted %T.ref.loc14, %T.as_type.loc14_10 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] +// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] +// CHECK:STDOUT: %.loc14_10.2: type = converted %T.ref.loc14, %T.as_type.loc14 [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @F.%T.as_type.loc4_36.1 (%T.as_type.a11) = bind_name v, %v.var +// CHECK:STDOUT: %v: ref @F.%T.binding.as_type (%T.binding.as_type.ef2) = bind_name v, %v.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %w.patt: %pattern_type.7ce = 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.as_type.loc4_36.1 (%T.as_type.a11) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @F.%T.binding.as_type (%T.binding.as_type.ef2) = name_ref x, %x // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%i32, (constants.%Copy.impl_witness.dc4) [concrete = constants.%Copy.facet] // CHECK:STDOUT: %.loc22_3.1: %Copy.type = converted constants.%i32, %Copy.facet [concrete = constants.%Copy.facet] -// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type constants.%T.9ff [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] +// CHECK:STDOUT: %as_type.loc22: type = facet_access_type constants.%T.9ff [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] // CHECK:STDOUT: %.loc22_3.2: %i32 = converted %x.ref, [concrete = ] // CHECK:STDOUT: assign %w.var, // CHECK:STDOUT: %.loc22_10: type = splice_block %i32 [concrete = constants.%i32] { @@ -379,17 +379,17 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %w: ref %i32 = bind_name w, %w.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_3.3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc22: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc22: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) -// CHECK:STDOUT: %T.as_type.loc14_3: type = facet_access_type constants.%T.9ff [template = %T.as_type.loc4_36.1 (constants.%T.as_type.a11)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %as_type.loc14: type = facet_access_type constants.%T.9ff [template = %T.binding.as_type (constants.%T.binding.as_type.ef2)] // CHECK:STDOUT: %impl.elem0.loc14_3.1: @F.%.loc14_3.6 (%.8eb) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.b2e)] // CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %v.var, %impl.elem0.loc14_3.1 // CHECK:STDOUT: %specific_impl_fn.loc14_3.1: = specific_impl_function %impl.elem0.loc14_3.1, @Destroy.Op(constants.%T.9ff) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.b6b)] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %v.var, %specific_impl_fn.loc14_3.1 -// CHECK:STDOUT: %addr.loc14: @F.%ptr (%ptr.983a2f.2) = addr_of %v.var +// CHECK:STDOUT: %addr.loc14: @F.%ptr (%ptr.8654e8.2) = addr_of %v.var // CHECK:STDOUT: %.loc14_3.3: init %empty_tuple.type = call %bound_method.loc14_3.2(%addr.loc14) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -397,7 +397,7 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.9ff) { // CHECK:STDOUT: %T.loc4_15.1 => constants.%T.9ff -// CHECK:STDOUT: %T.as_type.loc4_36.1 => constants.%T.as_type.a11 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d62 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.ef2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2f2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index e6764d485b163..e846b9984747c 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -68,9 +68,9 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.32d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ab1: %DestroyT.as_type.as.Destroy.impl.Op.type.32d = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ab1, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e91: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a33: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a33, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -194,11 +194,11 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc17_10.2(%.loc17_10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.ab1 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ab1, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a33 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a33, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.260 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index a3a8dc37b1d23..542985856853e 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -103,14 +103,14 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: %PartiallyConstant.type: type = fn_type @PartiallyConstant [concrete] // CHECK:STDOUT: %PartiallyConstant: %PartiallyConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -374,18 +374,18 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc29_10.2(%.loc29_10.2) // CHECK:STDOUT: %facet_value.loc28: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc28_3: %type_where = converted constants.%ptr.235, %facet_value.loc28 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc28: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc28_3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc28: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc28_3: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc28_3: %ptr.5d5 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28_3(%addr.loc28_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28_3(%addr.loc28_3) // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc27_3.2: %type_where = converted constants.%i32, %facet_value.loc27 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc27_3.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc27_3.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc27: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_3.3(%addr.loc27) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_3.3(%addr.loc27) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -471,18 +471,18 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc35_10.2(%.loc35_10.2) // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc34_3: %type_where = converted constants.%ptr.235, %facet_value.loc34 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc34_3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc34_3: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc34_3: %ptr.5d5 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_3(%addr.loc34_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_3(%addr.loc34_3) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc33_3.2: %type_where = converted constants.%i32, %facet_value.loc33 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index 99c7338a4946e..36c4c585a7623 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -63,9 +63,9 @@ fn F(cond: bool) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.a.b.501, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f75: %DestroyT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.16f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.869: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.16f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.869, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -188,11 +188,11 @@ fn F(cond: bool) { // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.ref(%.loc19_5) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.a.b.501, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%struct_type.a.b.501, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f75 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.869 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.869, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.3ee = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index 861e42692a786..305d0fdb0ea21 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -105,29 +105,29 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %require_complete.742: = require_complete_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %require_complete.e82: = require_complete_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.2ca: %I.assoc_type = assoc_entity element0, @I.%V [concrete] +// CHECK:STDOUT: %assoc0.58e: %I.assoc_type = assoc_entity element0, @I.%V [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %require_complete.636: = require_complete_type %.Self.binding.as_type [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %I_where.type.66b: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] -// CHECK:STDOUT: %I.impl_witness.c6c: = impl_witness file.%I.impl_witness_table.loc8 [concrete] -// CHECK:STDOUT: %I.facet.a55: %I.type = facet_value %empty_struct_type, (%I.impl_witness.c6c) [concrete] +// CHECK:STDOUT: %I_where.type.2e1: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] +// CHECK:STDOUT: %I.impl_witness.7ba: = impl_witness file.%I.impl_witness_table.loc8 [concrete] +// CHECK:STDOUT: %I.facet.762: %I.type = facet_value %empty_struct_type, (%I.impl_witness.7ba) [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [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.e22: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] -// CHECK:STDOUT: %I.impl_witness.d9c: = impl_witness file.%I.impl_witness_table.loc10 [concrete] -// CHECK:STDOUT: %I.facet.fd2: %I.type = facet_value %i32, (%I.impl_witness.d9c) [concrete] +// CHECK:STDOUT: %I_where.type.009: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] +// CHECK:STDOUT: %I.impl_witness.f54: = impl_witness file.%I.impl_witness_table.loc10 [concrete] +// CHECK:STDOUT: %I.facet.46c: %I.type = facet_value %i32, (%I.impl_witness.f54) [concrete] // CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] @@ -174,20 +174,20 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.2ca] -// 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: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.58e] +// 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: %impl.elem0: %.Self.binding.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 () // 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.66b] { +// CHECK:STDOUT: %.loc8_14: type = where_expr %.Self [concrete = constants.%I_where.type.2e1] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc8_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table.loc8 = impl_witness_table (%impl_witness_assoc_constant.loc8), @empty_struct_type.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness.loc8: = impl_witness %I.impl_witness_table.loc8 [concrete = constants.%I.impl_witness.c6c] +// CHECK:STDOUT: %I.impl_witness.loc8: = impl_witness %I.impl_witness_table.loc8 [concrete = constants.%I.impl_witness.7ba] // CHECK:STDOUT: %impl_witness_assoc_constant.loc8: %empty_struct_type = impl_witness_assoc_constant constants.%empty_struct [concrete = constants.%empty_struct] // CHECK:STDOUT: impl_decl @i32.as.I.impl [concrete] {} { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -195,18 +195,18 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.2ca] -// 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: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.58e] +// 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: %impl.elem0: %.Self.binding.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: type = where_expr %.Self [concrete = constants.%I_where.type.e22] { +// CHECK:STDOUT: %.loc10_15: type = where_expr %.Self [concrete = constants.%I_where.type.009] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_rewrite %impl.elem0, %int_0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %I.impl_witness_table.loc10 = impl_witness_table (%impl_witness_assoc_constant.loc10), @i32.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness.loc10: = impl_witness %I.impl_witness_table.loc10 [concrete = constants.%I.impl_witness.d9c] +// CHECK:STDOUT: %I.impl_witness.loc10: = impl_witness %I.impl_witness_table.loc10 [concrete = constants.%I.impl_witness.f54] // CHECK:STDOUT: %impl.elem0: %.1df = impl_witness_access constants.%ImplicitAs.impl_witness.204, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0] // CHECK:STDOUT: %bound_method.loc10_15.1: = bound_method constants.%int_0.5c6, %impl.elem0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] @@ -219,8 +219,8 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] -// CHECK:STDOUT: %V: @V.%Self.as_type (%Self.as_type.a67) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.2ca] +// CHECK:STDOUT: %V: @V.%Self.binding.as_type (%Self.binding.as_type.1b7) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.58e] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -231,10 +231,10 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: generic assoc_const @V(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.742)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.e82)] // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const V:! @V.%Self.as_type (%Self.as_type.a67); +// CHECK:STDOUT: assoc_const V:! @V.%Self.binding.as_type (%Self.binding.as_type.1b7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_struct_type.as.I.impl: %.loc8_7.2 as %.loc8_14 { @@ -249,25 +249,25 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a67 -// CHECK:STDOUT: %require_complete => constants.%require_complete.742 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %require_complete => constants.%require_complete.e82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%.Self) { // CHECK:STDOUT: %Self => constants.%.Self -// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.bdd +// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.636 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.a55) { -// CHECK:STDOUT: %Self => constants.%I.facet.a55 -// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type +// CHECK:STDOUT: specific @V(constants.%I.facet.762) { +// CHECK:STDOUT: %Self => constants.%I.facet.762 +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type // CHECK:STDOUT: %require_complete => constants.%complete_type.357 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.fd2) { -// CHECK:STDOUT: %Self => constants.%I.facet.fd2 -// CHECK:STDOUT: %Self.as_type => constants.%i32 +// CHECK:STDOUT: specific @V(constants.%I.facet.46c) { +// CHECK:STDOUT: %Self => constants.%I.facet.46c +// CHECK:STDOUT: %Self.binding.as_type => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: } // CHECK:STDOUT: @@ -276,16 +276,16 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %require_complete.742: = require_complete_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %require_complete.e82: = require_complete_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.2ca: %I.assoc_type = assoc_entity element0, @I.%V [concrete] +// CHECK:STDOUT: %assoc0.58e: %I.assoc_type = assoc_entity element0, @I.%V [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %require_complete.636: = require_complete_type %.Self.binding.as_type [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.binding.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 file.%I.impl_witness_table [concrete] @@ -317,10 +317,10 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.2ca] -// 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: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.58e] +// 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: %impl.elem0: %.Self.binding.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: type = where_expr %.Self [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type @@ -335,8 +335,8 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] -// CHECK:STDOUT: %V: @V.%Self.as_type (%Self.as_type.a67) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.2ca] +// CHECK:STDOUT: %V: @V.%Self.binding.as_type (%Self.binding.as_type.1b7) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.58e] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -347,10 +347,10 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: generic assoc_const @V(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.742)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.e82)] // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const V:! @V.%Self.as_type (%Self.as_type.a67); +// CHECK:STDOUT: assoc_const V:! @V.%Self.binding.as_type (%Self.binding.as_type.1b7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_struct_type.as.I.impl: %.loc15_7.2 as %.loc15_14 { @@ -360,19 +360,19 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a67 -// CHECK:STDOUT: %require_complete => constants.%require_complete.742 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %require_complete => constants.%require_complete.e82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%.Self) { // CHECK:STDOUT: %Self => constants.%.Self -// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.bdd +// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.636 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -381,10 +381,10 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %require_complete.742: = require_complete_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %require_complete.e82: = require_complete_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.2ca: %I.assoc_type = assoc_entity element0, @I.%V [concrete] +// CHECK:STDOUT: %assoc0.58e: %I.assoc_type = assoc_entity element0, @I.%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] @@ -401,10 +401,10 @@ fn CallF() { // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.396 = facet_value %empty_tuple.type, (%ImplicitAs.impl_witness) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %require_complete.636: = require_complete_type %.Self.binding.as_type [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] @@ -446,10 +446,10 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.2ca] -// 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: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.58e] +// 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: %impl.elem0: %.Self.binding.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 () // 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] @@ -472,8 +472,8 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] -// CHECK:STDOUT: %V: @V.%Self.as_type (%Self.as_type.a67) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.2ca] +// CHECK:STDOUT: %V: @V.%Self.binding.as_type (%Self.binding.as_type.1b7) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.58e] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -484,10 +484,10 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: generic assoc_const @V(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.742)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.e82)] // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const V:! @V.%Self.as_type (%Self.as_type.a67); +// CHECK:STDOUT: assoc_const V:! @V.%Self.binding.as_type (%Self.binding.as_type.1b7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_tuple.type.as.ImplicitAs.impl: %.loc10_7.2 as %ImplicitAs.type { @@ -537,19 +537,19 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a67 -// CHECK:STDOUT: %require_complete => constants.%require_complete.742 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %require_complete => constants.%require_complete.e82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%.Self) { // CHECK:STDOUT: %Self => constants.%.Self -// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.bdd +// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.636 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -567,11 +567,11 @@ fn CallF() { // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [concrete] // CHECK:STDOUT: %I.type.bdb: type = facet_type <@I, @I(%N)> [symbolic] // CHECK:STDOUT: %Self.7ca: %I.type.bdb = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type.b37: type = facet_access_type %Self.7ca [symbolic] -// CHECK:STDOUT: %array_type: type = array_type %N, %Self.as_type.b37 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.a98: type = symbolic_binding_type Self, 1, %Self.7ca [symbolic] +// CHECK:STDOUT: %array_type: type = array_type %N, %Self.binding.as_type.a98 [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %array_type [symbolic] // CHECK:STDOUT: %I.assoc_type.9df: type = assoc_entity_type @I, @I(%N) [symbolic] -// CHECK:STDOUT: %assoc0.ca1: %I.assoc_type.9df = assoc_entity element0, @I.%V [symbolic] +// CHECK:STDOUT: %assoc0.cb0: %I.assoc_type.9df = assoc_entity element0, @I.%V [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] @@ -587,8 +587,8 @@ fn CallF() { // CHECK:STDOUT: %.Self.61b: %I.type.f11 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %Self.ab4: %I.type.f11 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %I.assoc_type.247: type = assoc_entity_type @I, @I(%int_-1) [concrete] -// CHECK:STDOUT: %assoc0.77f: %I.assoc_type.247 = assoc_entity element0, @I.%V [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.61b [symbolic_self] +// CHECK:STDOUT: %assoc0.f55: %I.assoc_type.247 = assoc_entity element0, @I.%V [concrete] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.61b [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.61b, @I, @I(%int_-1) [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -638,10 +638,10 @@ fn CallF() { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%int_-1)> [concrete = constants.%I.type.f11] // CHECK:STDOUT: %.Self: %I.type.f11 = bind_symbolic_name .Self [symbolic_self = constants.%.Self.61b] // CHECK:STDOUT: %.Self.ref: %I.type.f11 = name_ref .Self, %.Self [symbolic_self = constants.%.Self.61b] -// CHECK:STDOUT: %.loc15_24.1: %I.assoc_type.247 = specific_constant @V.%assoc0, @I(constants.%int_-1) [concrete = constants.%assoc0.77f] -// CHECK:STDOUT: %V.ref: %I.assoc_type.247 = name_ref V, %.loc15_24.1 [concrete = constants.%assoc0.77f] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc15_24.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc15_24.1: %I.assoc_type.247 = specific_constant @V.%assoc0, @I(constants.%int_-1) [concrete = constants.%assoc0.f55] +// CHECK:STDOUT: %V.ref: %I.assoc_type.247 = name_ref V, %.loc15_24.1 [concrete = constants.%assoc0.f55] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc15_24.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: = impl_witness_access constants.%I.lookup_impl_witness, element0 [concrete = ] // CHECK:STDOUT: %.loc15_30: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc15_18: type = where_expr %.Self [concrete = ] { @@ -658,12 +658,12 @@ fn CallF() { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%N.loc4_13.1)> [symbolic = %I.type (constants.%I.type.bdb)] // CHECK:STDOUT: %Self.2: @I.%I.type (%I.type.bdb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.7ca)] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%N.loc4_13.1) [symbolic = %I.assoc_type (constants.%I.assoc_type.9df)] -// CHECK:STDOUT: %assoc0: @I.%I.assoc_type (%I.assoc_type.9df) = assoc_entity element0, %V [symbolic = %assoc0 (constants.%assoc0.ca1)] +// CHECK:STDOUT: %assoc0: @I.%I.assoc_type (%I.assoc_type.9df) = assoc_entity element0, %V [symbolic = %assoc0 (constants.%assoc0.cb0)] // CHECK:STDOUT: // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.bdb) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.7ca)] // CHECK:STDOUT: %V: @V.%array_type (%array_type) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: @I.%I.assoc_type (%I.assoc_type.9df) = assoc_entity element0, @I.%V [symbolic = @I.%assoc0 (constants.%assoc0.ca1)] +// CHECK:STDOUT: %assoc0: @I.%I.assoc_type (%I.assoc_type.9df) = assoc_entity element0, @I.%V [symbolic = @I.%assoc0 (constants.%assoc0.cb0)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -678,8 +678,8 @@ fn CallF() { // CHECK:STDOUT: %N: Core.IntLiteral = bind_symbolic_name N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%N)> [symbolic = %I.type (constants.%I.type.bdb)] // CHECK:STDOUT: %Self: @V.%I.type (%I.type.bdb) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.7ca)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.b37)] -// CHECK:STDOUT: %array_type: type = array_type %N, %Self.as_type [symbolic = %array_type (constants.%array_type)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.a98)] +// CHECK:STDOUT: %array_type: type = array_type %N, %Self.binding.as_type [symbolic = %array_type (constants.%array_type)] // CHECK:STDOUT: %require_complete: = require_complete_type %array_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: assoc_const V:! @V.%array_type (%array_type); @@ -698,7 +698,7 @@ fn CallF() { // CHECK:STDOUT: %N => constants.%N // CHECK:STDOUT: %I.type => constants.%I.type.bdb // CHECK:STDOUT: %Self => constants.%Self.7ca -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.b37 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.a98 // CHECK:STDOUT: %array_type => constants.%array_type // CHECK:STDOUT: %require_complete => constants.%require_complete // CHECK:STDOUT: } @@ -710,14 +710,14 @@ fn CallF() { // CHECK:STDOUT: %I.type => constants.%I.type.f11 // CHECK:STDOUT: %Self.2 => constants.%Self.ab4 // CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.247 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.77f +// CHECK:STDOUT: %assoc0 => constants.%assoc0.f55 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%int_-1, constants.%.Self.61b) { // CHECK:STDOUT: %N => constants.%int_-1 // CHECK:STDOUT: %I.type => constants.%I.type.f11 // CHECK:STDOUT: %Self => constants.%.Self.61b -// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type // CHECK:STDOUT: %array_type => // CHECK:STDOUT: %require_complete => // CHECK:STDOUT: } @@ -727,25 +727,25 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %require_complete.742: = require_complete_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %require_complete.e82: = require_complete_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.2ca: %I.assoc_type = assoc_entity element0, @I.%V [concrete] +// CHECK:STDOUT: %assoc0.58e: %I.assoc_type = assoc_entity element0, @I.%V [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.659: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.364: %I.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [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.as_type: type = facet_access_type %.Self.364 [symbolic_self] -// CHECK:STDOUT: %ImplicitAs.type.61f: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.364 [symbolic_self] +// CHECK:STDOUT: %ImplicitAs.type.ac7: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.binding.as_type)> [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.364, @I [symbolic_self] -// CHECK:STDOUT: %require_complete.bdd: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %require_complete.636: = require_complete_type %.Self.binding.as_type [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct and TODO> [concrete] // CHECK:STDOUT: %T: %I_where.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %pattern_type.3af: type = pattern_type %I_where.type [concrete] +// CHECK:STDOUT: %pattern_type.a22: type = pattern_type %I_where.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %CallF.type: type = fn_type @CallF [concrete] @@ -771,7 +771,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.3af = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.a22 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_12.1: type = splice_block %.loc8_12.2 [concrete = constants.%I_where.type] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] @@ -781,15 +781,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.364] -// 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.61f] +// 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.ac7] // 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.364] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.2ca] -// 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: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.58e] +// 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: %impl.elem0: %.Self.binding.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_60.1: %empty_struct_type = struct_literal () // 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] @@ -806,8 +806,8 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] -// CHECK:STDOUT: %V: @V.%Self.as_type (%Self.as_type.a67) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.2ca] +// CHECK:STDOUT: %V: @V.%Self.binding.as_type (%Self.binding.as_type.1b7) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%V [concrete = constants.%assoc0.58e] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -818,10 +818,10 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: generic assoc_const @V(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.742)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.e82)] // CHECK:STDOUT: -// CHECK:STDOUT: assoc_const V:! @V.%Self.as_type (%Self.as_type.a67); +// CHECK:STDOUT: assoc_const V:! @V.%Self.binding.as_type (%Self.binding.as_type.1b7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc8_6.2: %I_where.type) { @@ -839,14 +839,14 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a67 -// CHECK:STDOUT: %require_complete => constants.%require_complete.742 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %require_complete => constants.%require_complete.e82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @V(constants.%.Self.364) { // CHECK:STDOUT: %Self => constants.%.Self.364 -// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.bdd +// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.636 // 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 482f5422b4983..824d2e1adfed0 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.96f = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.3ac: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] // CHECK:STDOUT: %Self: %ImplicitAs.type.3ac = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.379: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.type: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert: %ImplicitAs.Convert.type = struct_value () [symbolic] @@ -166,20 +166,20 @@ fn InstanceCallFail() { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %ImplicitAs.Convert.decl: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type) = fn_decl @ImplicitAs.Convert [symbolic = @ImplicitAs.%ImplicitAs.Convert (constants.%ImplicitAs.Convert)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.379) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.379) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.f6d) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.f6d) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %self.param: @ImplicitAs.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: %self.param: @ImplicitAs.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: %.loc4_20.2: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -197,11 +197,11 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3ac)] // CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// 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_14: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.379)] +// 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_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.f6d)] // CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> @ImplicitAs.Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> @ImplicitAs.Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -212,8 +212,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3ac // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.379 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.f6d // CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -326,8 +326,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.Convert.type.275: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.42e: %ImplicitAs.Convert.type.275 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %Dest [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.152 [symbolic] -// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.152 [symbolic] +// CHECK:STDOUT: %pattern_type.519: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %ImplicitAs.assoc_type.ca0: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %assoc0.9f5: %ImplicitAs.assoc_type.ca0 = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.d3c: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance2.type)> [concrete] @@ -445,8 +445,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.edb)] // CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.edb) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.152)] -// 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.aa6)] +// 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.519)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -464,8 +464,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.edb // CHECK:STDOUT: %Self => constants.%Self.152 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.aa6 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.519 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -508,8 +508,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.Convert.type.275: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.42e: %ImplicitAs.Convert.type.275 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %Dest [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.152 [symbolic] -// CHECK:STDOUT: %pattern_type.aa6: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.152 [symbolic] +// CHECK:STDOUT: %pattern_type.519: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %ImplicitAs.assoc_type.ca0: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %assoc0.9f5: %ImplicitAs.assoc_type.ca0 = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.2b7: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance3.type)> [concrete] @@ -629,8 +629,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.edb)] // CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.edb) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.152)] -// 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.aa6)] +// 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.519)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -648,8 +648,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.edb // CHECK:STDOUT: %Self => constants.%Self.152 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.aa6 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.519 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -670,8 +670,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Instance1.type: type = facet_type <@Instance1> [concrete] // CHECK:STDOUT: %Self: %Instance1.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.bf1: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.ac5: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Instance1.G1.type: type = fn_type @Instance1.G1 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Instance1.G1: %Instance1.G1.type = struct_value () [concrete] @@ -739,16 +739,16 @@ fn InstanceCallFail() { // CHECK:STDOUT: interface @Instance1 { // CHECK:STDOUT: %Self: %Instance1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %Instance1.G1.decl: %Instance1.G1.type = fn_decl @Instance1.G1 [concrete = constants.%Instance1.G1] { -// CHECK:STDOUT: %self.patt: @Instance1.G1.%pattern_type (%pattern_type.bf1) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Instance1.G1.%pattern_type (%pattern_type.bf1) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Instance1.G1.%pattern_type (%pattern_type.ac5) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance1.G1.%pattern_type (%pattern_type.ac5) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Instance1.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.param: @Instance1.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.ref: %Instance1.type = name_ref Self, @Instance1.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @Instance1.G1.%Self.as_type.loc4_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Instance1.G1.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance1.assoc_type = assoc_entity element0, %Instance1.G1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -775,10 +775,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance1.G1(@Instance1.%Self: %Instance1.type) { // CHECK:STDOUT: %Self: %Instance1.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.bf1)] +// 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.ac5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Instance1.G1.%Self.as_type.loc4_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Instance1.G1.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @struct_type.d.as.Instance1.impl.G1(%self.param: %struct_type.d) { @@ -816,13 +816,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.G1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bf1 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ac5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.G1(constants.%Instance1.facet) { // CHECK:STDOUT: %Self => constants.%Instance1.facet -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%struct_type.d +// CHECK:STDOUT: %Self.binding.as_type => constants.%struct_type.d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.515 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -831,8 +831,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Instance2.type: type = facet_type <@Instance2> [concrete] // CHECK:STDOUT: %Self: %Instance2.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.ecd: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.a70: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Instance2.G2.type: type = fn_type @Instance2.G2 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Instance2.G2: %Instance2.G2.type = struct_value () [concrete] @@ -868,16 +868,16 @@ fn InstanceCallFail() { // CHECK:STDOUT: interface @Instance2 { // CHECK:STDOUT: %Self: %Instance2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %Instance2.G2.decl: %Instance2.G2.type = fn_decl @Instance2.G2 [concrete = constants.%Instance2.G2] { -// CHECK:STDOUT: %self.patt: @Instance2.G2.%pattern_type (%pattern_type.ecd) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Instance2.G2.%pattern_type (%pattern_type.ecd) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Instance2.G2.%pattern_type (%pattern_type.a70) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance2.G2.%pattern_type (%pattern_type.a70) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Instance2.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.param: @Instance2.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.ref: %Instance2.type = name_ref Self, @Instance2.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @Instance2.G2.%Self.as_type.loc4_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Instance2.G2.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance2.assoc_type = assoc_entity element0, %Instance2.G2.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -904,10 +904,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance2.G2(@Instance2.%Self: %Instance2.type) { // CHECK:STDOUT: %Self: %Instance2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.ecd)] +// 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.a70)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Instance2.G2.%Self.as_type.loc4_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Instance2.G2.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @struct_type.e.as.Instance2.impl.G2(%self.param: %struct_type.e) { @@ -927,13 +927,13 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.G2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ecd +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.G2(constants.%Instance2.facet) { // CHECK:STDOUT: %Self => constants.%Instance2.facet -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%struct_type.e +// CHECK:STDOUT: %Self.binding.as_type => 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 183932a93f78e..35bd5fd2c8cbe 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -128,15 +128,15 @@ class X(U:! type) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.654: %type_where = facet_value %Param, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.654) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.934: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f6d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.654) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.d70: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f6d = struct_value () [concrete] // CHECK:STDOUT: %ptr.756: type = ptr_type %Param [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.934, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.654) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.eab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.d70, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.654) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -337,25 +337,25 @@ class X(U:! type) { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc22_20: %type_where = facet_value constants.%Param, () [concrete = constants.%facet_value.654] // CHECK:STDOUT: %.loc22_20.3: %type_where = converted constants.%Param, %facet_value.loc22_20 [concrete = constants.%facet_value.654] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22_20: = bound_method %.loc22_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.934 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.934, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24c] -// CHECK:STDOUT: %bound_method.loc22_20: = bound_method %.loc22_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22_20: = bound_method %.loc22_20.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d70 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d70, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.eab] +// CHECK:STDOUT: %bound_method.loc22_20: = bound_method %.loc22_20.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc22_20: %ptr.756 = addr_of %.loc22_20.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22_20: init %empty_tuple.type = call %bound_method.loc22_20(%addr.loc22_20) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22_20: init %empty_tuple.type = call %bound_method.loc22_20(%addr.loc22_20) // CHECK:STDOUT: %facet_value.loc22_3: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc22_3: %type_where = converted constants.%i32, %facet_value.loc22_3 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22_3: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22_3: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc22_3: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22_3: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22_3: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22_3) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%Param, () [concrete = constants.%facet_value.654] // CHECK:STDOUT: %.loc21_20.3: %type_where = converted constants.%Param, %facet_value.loc21 [concrete = constants.%facet_value.654] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.934 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.934, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24c] -// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_20.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d70 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d70, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.654) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.eab] +// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_20.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc21: %ptr.756 = addr_of %.loc21_20.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -396,8 +396,8 @@ class X(U:! type) { // CHECK:STDOUT: %I.generic: %I.type.dac = struct_value () [concrete] // CHECK:STDOUT: %I.type.b13b9f.1: type = facet_type <@I, @I(%T)> [symbolic] // CHECK:STDOUT: %Self.daeb23.1: %I.type.b13b9f.1 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.daeb23.1 [symbolic] -// CHECK:STDOUT: %pattern_type.a19: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.daeb23.1 [symbolic] +// CHECK:STDOUT: %pattern_type.d83: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.7dcd0a.1: type = pattern_type %T [symbolic] // CHECK:STDOUT: %I.F.type.2aef59.1: type = fn_type @I.F, @I(%T) [symbolic] // CHECK:STDOUT: %I.F.bb2dd4.1: %I.F.type.2aef59.1 = struct_value () [symbolic] @@ -468,19 +468,19 @@ class X(U:! type) { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.b13b9f.1) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.daeb23.1)] // CHECK:STDOUT: %I.F.decl: @I.%I.F.type (%I.F.type.2aef59.1) = fn_decl @I.F [symbolic = @I.%I.F (constants.%I.F.bb2dd4.1)] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type.loc5_8 (%pattern_type.a19) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type.loc5_8 (%pattern_type.a19) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type.loc5_8 (%pattern_type.d83) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type.loc5_8 (%pattern_type.d83) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %t.patt: @I.F.%pattern_type.loc5_20 (%pattern_type.7dcd0a.1) = binding_pattern t [concrete] // CHECK:STDOUT: %t.param_patt: @I.F.%pattern_type.loc5_20 (%pattern_type.7dcd0a.1) = value_param_pattern %t.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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: %self.param: @I.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: %.loc5_14.2: @I.F.%I.type (%I.type.b13b9f.1) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self.daeb23.1)] // CHECK:STDOUT: %Self.ref: @I.F.%I.type (%I.type.b13b9f.1) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.daeb23.1)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %t.param: @I.F.%T (%T) = value_param call_param1 // CHECK:STDOUT: %T.ref: type = name_ref T, @I.%T.loc4_13.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @I.F.%T (%T) = bind_name t, %t.param @@ -564,11 +564,11 @@ class X(U:! type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.b13b9f.1)] // CHECK:STDOUT: %Self: @I.F.%I.type (%I.type.b13b9f.1) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.daeb23.1)] -// 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_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.a19)] +// 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_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.d83)] // CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %T [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.7dcd0a.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc5_14.1 (%Self.as_type), %t.param: @I.F.%T (%T)); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type), %t.param: @I.F.%T (%T)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @X.as.I.impl.F(@X.%U.loc8_9.2: type) { @@ -597,8 +597,8 @@ class X(U:! type) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.b13b9f.1 // CHECK:STDOUT: %Self => constants.%Self.daeb23.1 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.a19 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.d83 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.7dcd0a.1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -647,7 +647,7 @@ class X(U:! type) { // CHECK:STDOUT: %T => constants.%U // CHECK:STDOUT: %I.type => constants.%I.type.b13b9f.2 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%X +// CHECK:STDOUT: %Self.binding.as_type => constants.%X // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.830 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.7dcd0a.2 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_call_invalid.carbon b/toolchain/check/testdata/impl/fail_call_invalid.carbon index 6946cfa1df5e0..ff344d17f9ab1 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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.42f: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.95a: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Simple.G.type: type = fn_type @Simple.G [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Simple.G: %Simple.G.type = struct_value () [concrete] @@ -97,16 +97,16 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: interface @Simple { // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %Simple.G.decl: %Simple.G.type = fn_decl @Simple.G [concrete = constants.%Simple.G] { -// CHECK:STDOUT: %self.patt: @Simple.G.%pattern_type (%pattern_type.42f) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Simple.G.%pattern_type (%pattern_type.42f) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Simple.G.%pattern_type (%pattern_type.95a) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Simple.G.%pattern_type (%pattern_type.95a) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Simple.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.param: @Simple.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.ref: %Simple.type = name_ref Self, @Simple.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @Simple.G.%Self.as_type.loc16_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Simple.G.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, %Simple.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -141,10 +141,10 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple.G(@Simple.%Self: %Simple.type) { // CHECK:STDOUT: %Self: %Simple.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.42f)] +// 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.95a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Simple.G.%Self.as_type.loc16_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Simple.G.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.as.Simple.impl.G.loc24_27.1(%self.param: ); @@ -173,13 +173,13 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.42f +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.95a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.G(constants.%Simple.facet) { // CHECK:STDOUT: %Self => constants.%Simple.facet -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 +// CHECK:STDOUT: %Self.binding.as_type => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon index 42e2444f57890..31e5b733ef6b7 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_scope.carbon @@ -189,10 +189,10 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Point, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.51d: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b86: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.3aa: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b86 = struct_value () [concrete] // CHECK:STDOUT: %ptr.536: type = ptr_type %Point [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.3aa, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -303,11 +303,11 @@ fn F() { // CHECK:STDOUT: %Point.as.Z.impl.Zero.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Point, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_5.5: %type_where = converted constants.%Point, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.51d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc25_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc25_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3aa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3aa, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc25_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.536 = addr_of %.loc25_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // 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 67de1c07854dd..9e40f75b722a7 100644 --- a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon @@ -229,8 +229,8 @@ class X { // CHECK:STDOUT: %Z.Zero: %Z.Zero.type = struct_value () [concrete] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] // CHECK:STDOUT: %assoc0.534: %Z.assoc_type = assoc_entity element0, @Z.%Z.Zero.decl [concrete] -// CHECK:STDOUT: %Self.as_type.bbb: type = facet_access_type %Self.1d7 [symbolic] -// CHECK:STDOUT: %pattern_type.c8d: type = pattern_type %Self.as_type.bbb [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.c3d: type = symbolic_binding_type Self, 0, %Self.1d7 [symbolic] +// CHECK:STDOUT: %pattern_type.5d1: type = pattern_type %Self.binding.as_type.c3d [symbolic] // CHECK:STDOUT: %Z.Method.type: type = fn_type @Z.Method [concrete] // CHECK:STDOUT: %Z.Method: %Z.Method.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, @Z.%Z.Method.decl [concrete] @@ -238,7 +238,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.1d7) [symbolic] // CHECK:STDOUT: %.as.Z.impl.Method: %.as.Z.impl.Method.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.5af: = require_complete_type %Self.as_type.bbb [symbolic] +// CHECK:STDOUT: %require_complete.5c2: = require_complete_type %Self.binding.as_type.c3d [symbolic] // CHECK:STDOUT: %Point: type = class_type @Point [concrete] // CHECK:STDOUT: %Z.impl_witness: = impl_witness @Point.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Zero.type: type = fn_type @Point.as.Z.impl.Zero [concrete] @@ -257,10 +257,10 @@ class X { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Point, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.51d: %DestroyT.as_type.as.Destroy.impl.Op.type.e2d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b86: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.3aa: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b86 = struct_value () [concrete] // CHECK:STDOUT: %ptr.536: type = ptr_type %Point [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.3aa, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -290,16 +290,16 @@ class X { // CHECK:STDOUT: %Z.Zero.decl: %Z.Zero.type = fn_decl @Z.Zero [concrete = constants.%Z.Zero] {} {} // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.Zero.decl [concrete = constants.%assoc0.534] // CHECK:STDOUT: %Z.Method.decl: %Z.Method.type = fn_decl @Z.Method [concrete = constants.%Z.Method] { -// CHECK:STDOUT: %self.patt: @Z.Method.%pattern_type (%pattern_type.c8d) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Z.Method.%pattern_type (%pattern_type.c8d) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Z.Method.%pattern_type (%pattern_type.5d1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Z.Method.%pattern_type (%pattern_type.5d1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Z.Method.%Self.as_type.loc5_19.1 (%Self.as_type.bbb) = 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.bbb)] { +// CHECK:STDOUT: %self.param: @Z.Method.%Self.binding.as_type (%Self.binding.as_type.c3d) = 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.c3d)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.1d7)] -// 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.bbb)] -// 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.bbb)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c3d)] +// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c3d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Z.Method.%Self.as_type.loc5_19.1 (%Self.as_type.bbb) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Z.Method.%Self.binding.as_type (%Self.binding.as_type.c3d) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, %Z.Method.decl [concrete = constants.%assoc1] // CHECK:STDOUT: impl_decl @.as.Z.impl [concrete] {} { @@ -325,16 +325,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.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.c8d) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.c8d) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.5d1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.5d1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @.as.Z.impl.Method.%Self.as_type.loc13_21.1 (%Self.as_type.bbb) = value_param call_param0 -// CHECK:STDOUT: %.loc13_21.1: type = splice_block %.loc13_21.2 [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.bbb)] { +// CHECK:STDOUT: %self.param: @.as.Z.impl.Method.%Self.binding.as_type (%Self.binding.as_type.c3d) = value_param call_param0 +// CHECK:STDOUT: %.loc13_21.1: type = splice_block %.loc13_21.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c3d)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.1d7)] -// CHECK:STDOUT: %Self.as_type.loc13_21.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.bbb)] -// CHECK:STDOUT: %.loc13_21.2: type = converted %Self.ref, %Self.as_type.loc13_21.2 [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.bbb)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c3d)] +// CHECK:STDOUT: %.loc13_21.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c3d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @.as.Z.impl.Method.%Self.as_type.loc13_21.1 (%Self.as_type.bbb) = bind_name self, %self.param +// CHECK:STDOUT: %self: @.as.Z.impl.Method.%Self.binding.as_type (%Self.binding.as_type.c3d) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -382,10 +382,10 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.Method(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.1d7)] -// CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.bbb)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.c8d)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c3d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.5d1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Z.Method.%Self.as_type.loc5_19.1 (%Self.as_type.bbb)); +// CHECK:STDOUT: fn(%self.param: @Z.Method.%Self.binding.as_type (%Self.binding.as_type.c3d)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.as.Z.impl.Zero(@Z.%Self: %Z.type) { @@ -399,13 +399,13 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.as.Z.impl.Method(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.1d7)] -// CHECK:STDOUT: %Self.as_type.loc13_21.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_21.1 (constants.%Self.as_type.bbb)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc13_21.1 [symbolic = %pattern_type (constants.%pattern_type.c8d)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c3d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.5d1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc13_21.1 [symbolic = %require_complete (constants.%require_complete.5af)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.5c2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @.as.Z.impl.Method.%Self.as_type.loc13_21.1 (%Self.as_type.bbb)) { +// CHECK:STDOUT: fn(%self.param: @.as.Z.impl.Method.%Self.binding.as_type (%Self.binding.as_type.c3d)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -444,11 +444,11 @@ class X { // CHECK:STDOUT: %Point.as.Z.impl.Method.call: init %empty_tuple.type = call %bound_method.loc29_16(%.loc29_7.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Point, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc29_5.5: %type_where = converted constants.%Point, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc29_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.51d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.51d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc29_5: = bound_method %.loc29_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc29_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3aa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3aa, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc29_5: = bound_method %.loc29_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.536 = addr_of %.loc29_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc29_5(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc29_5(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -456,8 +456,8 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.Method(constants.%Self.1d7) { // CHECK:STDOUT: %Self => constants.%Self.1d7 -// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Self.as_type.bbb -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8d +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.c3d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5d1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.as.Z.impl(constants.%Self.1d7) { @@ -473,15 +473,15 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @.as.Z.impl.Method(constants.%Self.1d7) { // CHECK:STDOUT: %Self => constants.%Self.1d7 -// CHECK:STDOUT: %Self.as_type.loc13_21.1 => constants.%Self.as_type.bbb -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8d +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.c3d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5d1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.Zero(constants.%Z.facet) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.Method(constants.%Z.facet) { // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Point +// CHECK:STDOUT: %Self.binding.as_type => constants.%Point // CHECK:STDOUT: %pattern_type => constants.%pattern_type.35b // 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 026ae8f4db7a8..7b914924267cd 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -339,19 +339,19 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.e4a0b7.2: %FDifferentReturnType.as.J.impl.F.type.3243f4.2 = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] // CHECK:STDOUT: %Self.3de: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.b27: type = facet_access_type %Self.3de [symbolic] -// CHECK:STDOUT: %ptr.95d: type = ptr_type %Self.as_type.b27 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.9fa: type = symbolic_binding_type Self, 0, %Self.3de [symbolic] +// CHECK:STDOUT: %ptr.7fb: type = ptr_type %Self.binding.as_type.9fa [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.cde: type = struct_type {.x: %Self.as_type.b27, .y: %i32} [symbolic] +// CHECK:STDOUT: %struct_type.x.y.a78: type = struct_type {.x: %Self.binding.as_type.9fa, .y: %i32} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.type.483: type = tuple_type (%ptr.95d, %struct_type.x.y.cde) [symbolic] -// CHECK:STDOUT: %pattern_type.1d9: type = pattern_type %tuple.type.483 [symbolic] +// CHECK:STDOUT: %tuple.type.bf8: type = tuple_type (%ptr.7fb, %struct_type.x.y.a78) [symbolic] +// CHECK:STDOUT: %pattern_type.daf: type = pattern_type %tuple.type.bf8 [symbolic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %array_type.252: type = array_type %int_4, %Self.as_type.b27 [symbolic] -// CHECK:STDOUT: %pattern_type.7b8: type = pattern_type %array_type.252 [symbolic] +// CHECK:STDOUT: %array_type.fe2: type = array_type %int_4, %Self.binding.as_type.9fa [symbolic] +// CHECK:STDOUT: %pattern_type.285: type = pattern_type %array_type.fe2 [symbolic] // CHECK:STDOUT: %SelfNested.F.type: type = fn_type @SelfNested.F [concrete] // CHECK:STDOUT: %SelfNested.F: %SelfNested.F.type = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete] @@ -495,34 +495,34 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: interface @SelfNested { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.3de] // CHECK:STDOUT: %SelfNested.F.decl: %SelfNested.F.type = fn_decl @SelfNested.F [concrete = constants.%SelfNested.F] { -// CHECK:STDOUT: %x.patt: @SelfNested.F.%pattern_type.loc211_8 (%pattern_type.1d9) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @SelfNested.F.%pattern_type.loc211_8 (%pattern_type.1d9) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @SelfNested.F.%pattern_type.loc211_41 (%pattern_type.7b8) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @SelfNested.F.%pattern_type.loc211_41 (%pattern_type.7b8) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.F.%pattern_type.loc211_8 (%pattern_type.daf) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @SelfNested.F.%pattern_type.loc211_8 (%pattern_type.daf) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @SelfNested.F.%pattern_type.loc211_41 (%pattern_type.285) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @SelfNested.F.%pattern_type.loc211_41 (%pattern_type.285) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc211_50: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3de)] // 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.as_type.loc211_16.1 (constants.%Self.as_type.b27)] -// 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.b27)] -// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.1 (constants.%array_type.252)] -// CHECK:STDOUT: %x.param: @SelfNested.F.%tuple.type (%tuple.type.483) = value_param call_param0 -// CHECK:STDOUT: %.loc211_38.1: type = splice_block %.loc211_38.3 [symbolic = %tuple.type (constants.%tuple.type.483)] { +// 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.9fa)] +// 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.9fa)] +// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.1 (constants.%array_type.fe2)] +// CHECK:STDOUT: %x.param: @SelfNested.F.%tuple.type (%tuple.type.bf8) = value_param call_param0 +// CHECK:STDOUT: %.loc211_38.1: type = splice_block %.loc211_38.3 [symbolic = %tuple.type (constants.%tuple.type.bf8)] { // CHECK:STDOUT: %Self.ref.loc211_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3de)] -// 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.b27)] -// 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.b27)] -// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.1 (constants.%ptr.95d)] +// 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.9fa)] +// 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.9fa)] +// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.1 (constants.%ptr.7fb)] // CHECK:STDOUT: %Self.ref.loc211_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3de)] -// 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.b27)] -// 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.b27)] +// 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.9fa)] +// 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.9fa)] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @SelfNested.F.%Self.as_type.loc211_16.1 (%Self.as_type.b27), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.cde)] +// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @SelfNested.F.%Self.binding.as_type (%Self.binding.as_type.9fa), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.a78)] // CHECK:STDOUT: %.loc211_38.2: %tuple.type.24b = tuple_literal (%ptr.loc211_16.2, %struct_type.x.y.loc211_37.2) -// CHECK:STDOUT: %.loc211_38.3: type = converted %.loc211_38.2, constants.%tuple.type.483 [symbolic = %tuple.type (constants.%tuple.type.483)] +// CHECK:STDOUT: %.loc211_38.3: type = converted %.loc211_38.2, constants.%tuple.type.bf8 [symbolic = %tuple.type (constants.%tuple.type.bf8)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @SelfNested.F.%tuple.type (%tuple.type.483) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @SelfNested.F.%array_type.loc211_57.1 (%array_type.252) = out_param call_param1 -// CHECK:STDOUT: %return: ref @SelfNested.F.%array_type.loc211_57.1 (%array_type.252) = return_slot %return.param +// CHECK:STDOUT: %x: @SelfNested.F.%tuple.type (%tuple.type.bf8) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @SelfNested.F.%array_type.loc211_57.1 (%array_type.fe2) = out_param call_param1 +// CHECK:STDOUT: %return: ref @SelfNested.F.%array_type.loc211_57.1 (%array_type.fe2) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.F.decl [concrete = constants.%assoc0.beb] // CHECK:STDOUT: @@ -1290,15 +1290,15 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @SelfNested.F(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.3de)] -// CHECK:STDOUT: %Self.as_type.loc211_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b27)] -// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %Self.as_type.loc211_16.1 [symbolic = %ptr.loc211_16.1 (constants.%ptr.95d)] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @SelfNested.F.%Self.as_type.loc211_16.1 (%Self.as_type.b27), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.cde)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.483)] -// CHECK:STDOUT: %pattern_type.loc211_8: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_8 (constants.%pattern_type.1d9)] -// 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.252)] -// CHECK:STDOUT: %pattern_type.loc211_41: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_41 (constants.%pattern_type.7b8)] -// CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @SelfNested.F.%tuple.type (%tuple.type.483)) -> @SelfNested.F.%array_type.loc211_57.1 (%array_type.252); +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.9fa)] +// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %Self.binding.as_type [symbolic = %ptr.loc211_16.1 (constants.%ptr.7fb)] +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @SelfNested.F.%Self.binding.as_type (%Self.binding.as_type.9fa), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.a78)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.bf8)] +// CHECK:STDOUT: %pattern_type.loc211_8: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_8 (constants.%pattern_type.daf)] +// 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.fe2)] +// CHECK:STDOUT: %pattern_type.loc211_41: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_41 (constants.%pattern_type.285)] +// CHECK:STDOUT: +// CHECK:STDOUT: fn(%x.param: @SelfNested.F.%tuple.type (%tuple.type.bf8)) -> @SelfNested.F.%array_type.loc211_57.1 (%array_type.fe2); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1(%x.param: %tuple.type.a7d) -> %return.param: %array_type.a41; @@ -1354,18 +1354,18 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.F(constants.%Self.3de) { // CHECK:STDOUT: %Self => constants.%Self.3de -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%Self.as_type.b27 -// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.95d -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.cde -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.483 -// CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.1d9 -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.252 -// CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.7b8 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.9fa +// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.7fb +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.a78 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.bf8 +// CHECK:STDOUT: %pattern_type.loc211_8 => constants.%pattern_type.daf +// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.fe2 +// CHECK:STDOUT: %pattern_type.loc211_41 => constants.%pattern_type.285 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.F(constants.%SelfNested.facet.182) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.182 -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadParam +// CHECK:STDOUT: %Self.binding.as_type => constants.%SelfNestedBadParam // CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.4cd // CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.a89 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.9c9 @@ -1376,7 +1376,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.F(constants.%SelfNested.facet.55d) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.55d -// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadReturnType +// CHECK:STDOUT: %Self.binding.as_type => constants.%SelfNestedBadReturnType // CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.612 // CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.ac5 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.eb9 diff --git a/toolchain/check/testdata/impl/fail_undefined_interface.carbon b/toolchain/check/testdata/impl/fail_undefined_interface.carbon index a6180eec6bfb5..6a947a711d739 100644 --- a/toolchain/check/testdata/impl/fail_undefined_interface.carbon +++ b/toolchain/check/testdata/impl/fail_undefined_interface.carbon @@ -148,7 +148,7 @@ impl C as J where .Self impls Incomplete and .T = (); // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Incomplete.type: type = facet_type <@Incomplete> [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where .Self impls @Incomplete> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -167,8 +167,8 @@ impl C as J where .Self impls Incomplete and .T = (); // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.as_type] -// CHECK:STDOUT: %.loc15_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc15_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %.loc15_13: type = where_expr %.Self [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_impls %.loc15_19, %Incomplete.ref @@ -211,7 +211,7 @@ impl C as J where .Self impls Incomplete and .T = (); // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.%T [concrete] // CHECK:STDOUT: %Incomplete.type: type = facet_type <@Incomplete> [concrete] // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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.type: type = tuple_type () [concrete] @@ -233,12 +233,12 @@ impl C as J where .Self impls Incomplete and .T = (); // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc15_19: %J.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.loc15_19: type = facet_access_type %.Self.ref.loc15_19 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc15_19: type = converted %.Self.ref.loc15_19, %.Self.as_type.loc15_19 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc15_19: type = facet_access_type %.Self.ref.loc15_19 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc15_19: type = converted %.Self.ref.loc15_19, %.Self.as_type.loc15_19 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %.Self.ref.loc15_46: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %J.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc15_46: type = facet_access_type %.Self.ref.loc15_46 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc15_46: type = converted %.Self.ref.loc15_46, %.Self.as_type.loc15_46 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc15_46: type = facet_access_type %.Self.ref.loc15_46 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc15_46: type = converted %.Self.ref.loc15_46, %.Self.as_type.loc15_46 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc15_52.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc15_52.2: type = converted %.loc15_52.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/impl/forward_decls.carbon b/toolchain/check/testdata/impl/forward_decls.carbon index d019523282166..5bb882e472120 100644 --- a/toolchain/check/testdata/impl/forward_decls.carbon +++ b/toolchain/check/testdata/impl/forward_decls.carbon @@ -494,7 +494,7 @@ interface I { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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 = %empty_tuple.type> [concrete] @@ -522,8 +522,8 @@ interface I { // CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc6: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc6: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc6_26.2: type = converted %.loc6_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -542,8 +542,8 @@ interface I { // CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc8: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc8: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc8_26.2: type = converted %.loc8_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -590,7 +590,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 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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.type: type = tuple_type () [concrete] @@ -624,8 +624,8 @@ interface I { // CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc7: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc7: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc7_25.2: type = converted %.loc7_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -657,8 +657,8 @@ interface I { // CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc11: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc11: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -721,7 +721,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 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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.type: type = tuple_type () [concrete] @@ -755,8 +755,8 @@ interface I { // CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc7: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc7: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc7_25.2: type = converted %.loc7_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -790,8 +790,8 @@ interface I { // CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc11: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc11: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc11_25.2: type = converted %.loc11_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -1049,7 +1049,7 @@ interface I { // CHECK:STDOUT: %Self.0d0: %I.type.fc3 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %I.assoc_type.b3c: type = assoc_entity_type @I, @I(%C) [concrete] // CHECK:STDOUT: %assoc0.3e4: %I.assoc_type.b3c = assoc_entity element0, @I.%T [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.d7f [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.d7f [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.d7f, @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] @@ -1088,8 +1088,8 @@ interface I { // CHECK:STDOUT: %.Self.ref.loc8: %I.type.fc3 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.d7f] // CHECK:STDOUT: %.loc8_22.1: %I.assoc_type.b3c = specific_constant @T.%assoc0, @I(constants.%C) [concrete = constants.%assoc0.3e4] // CHECK:STDOUT: %T.ref.loc8: %I.assoc_type.b3c = name_ref T, %.loc8_22.1 [concrete = constants.%assoc0.3e4] -// CHECK:STDOUT: %.Self.as_type.loc8: type = facet_access_type %.Self.ref.loc8 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc8_22.2: type = converted %.Self.ref.loc8, %.Self.as_type.loc8 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc8: type = facet_access_type %.Self.ref.loc8 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc8_22.2: type = converted %.Self.ref.loc8, %.Self.as_type.loc8 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0.loc8: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref.loc8_27: type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C] // CHECK:STDOUT: %.loc8_16: type = where_expr %.Self.2 [concrete = constants.%I_where.type] { @@ -1110,8 +1110,8 @@ interface I { // CHECK:STDOUT: %.Self.ref.loc11: %I.type.fc3 = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.d7f] // CHECK:STDOUT: %.loc11_22.1: %I.assoc_type.b3c = specific_constant @T.%assoc0, @I(constants.%C) [concrete = constants.%assoc0.3e4] // CHECK:STDOUT: %T.ref.loc11: %I.assoc_type.b3c = name_ref T, %.loc11_22.1 [concrete = constants.%assoc0.3e4] -// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc11_22.2: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc11_22.2: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0.loc11: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref.loc11_27: type = name_ref C, file.%C.decl.loc6 [concrete = constants.%C] // CHECK:STDOUT: %.loc11_16: type = where_expr %.Self.1 [concrete = constants.%I_where.type] { @@ -1422,7 +1422,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 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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.type: type = tuple_type () [concrete] @@ -1452,8 +1452,8 @@ interface I { // CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc9: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc9: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc9: type = facet_access_type %.Self.ref.loc9 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc9_19: type = converted %.Self.ref.loc9, %.Self.as_type.loc9 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_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: %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 () // CHECK:STDOUT: %.loc9_25.2: type = converted %.loc9_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -1471,8 +1471,8 @@ interface I { // CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc18: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc18: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc18: type = facet_access_type %.Self.ref.loc18 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref.loc18, %.Self.as_type.loc18 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_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: %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 () // CHECK:STDOUT: %.loc18_25.2: type = converted %.loc18_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -1537,8 +1537,8 @@ interface I { // 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: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %pattern_type.523: type = pattern_type %U.as_type [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] +// CHECK:STDOUT: %pattern_type.475: type = pattern_type %U.binding.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] @@ -1554,7 +1554,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.045: %Y.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness file.%Y.impl_witness_table [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1588,21 +1588,21 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc7: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.07d = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.523) = binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.523) = value_param_pattern %u.patt, call_param0 [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.475) = binding_pattern u [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.475) = value_param_pattern %u.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_10: type = splice_block %X.ref.loc7 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.2: %type = bind_symbolic_name .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_6.2: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.1 (constants.%U)] -// 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.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.ref.loc7: %X.type = name_ref U, %U.loc7_6.2 [symbolic = %U.loc7_6.1 (constants.%U)] -// 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: %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: } -// CHECK:STDOUT: %u.loc7: @G.%U.as_type.loc7_16.1 (%U.as_type) = bind_name u, %u.param.loc7 +// CHECK:STDOUT: %u.loc7: @G.%U.binding.as_type (%U.binding.as_type) = bind_name 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] {} { @@ -1634,21 +1634,21 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc35: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.07d = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.523) = binding_pattern u [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.523) = value_param_pattern %u.patt, call_param0 [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.475) = binding_pattern u [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.475) = value_param_pattern %u.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc35_10: type = splice_block %X.ref.loc35 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .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 = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.1 (constants.%U)] -// CHECK:STDOUT: %u.param.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc35_16.1: type = splice_block %.loc35_16.2 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] { +// CHECK:STDOUT: %u.param.loc35: @G.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc35_16.1: type = splice_block %.loc35_16.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { // CHECK:STDOUT: %U.ref.loc35: %X.type = name_ref U, %U.loc35 [symbolic = %U.loc7_6.1 (constants.%U)] -// 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_16.2: type = converted %U.ref.loc35, %U.as_type.loc35 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] +// 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_16.2: type = converted %U.ref.loc35, %U.as_type.loc35 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type) = bind_name u, %u.param.loc35 +// CHECK:STDOUT: %u.loc35: @G.%U.binding.as_type (%U.binding.as_type) = bind_name 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] @@ -1713,13 +1713,13 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%U.loc7_6.2: %X.type) { // CHECK:STDOUT: %U.loc7_6.1: %X.type = bind_symbolic_name U, 0 [symbolic = %U.loc7_6.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc7_16.1: type = facet_access_type %U.loc7_6.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.523)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc7_6.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.475)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc7_16.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type)) { +// CHECK:STDOUT: fn(%u.param.loc35: @G.%U.binding.as_type (%U.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1750,8 +1750,8 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { // CHECK:STDOUT: %U.loc7_6.1 => constants.%U -// CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%U.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.523 +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.475 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%X.facet) { @@ -1762,7 +1762,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%X.facet) { // CHECK:STDOUT: %U.loc7_6.1 => constants.%X.facet -// CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%C +// CHECK:STDOUT: %U.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -1884,7 +1884,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 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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] @@ -1970,8 +1970,8 @@ interface I { // CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc12: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U.ref.loc12: %I.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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.F.%C.decl [symbolic = %C (constants.%C)] // CHECK:STDOUT: %.loc12_17: type = where_expr %.Self.2 [symbolic = %I_where.type (constants.%I_where.type)] { @@ -1988,8 +1988,8 @@ interface I { // CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc21: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U.ref.loc21: %I.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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.F.%C.decl [symbolic = %C (constants.%C)] // CHECK:STDOUT: %.loc21_17: type = where_expr %.Self.1 [symbolic = %I_where.type (constants.%I_where.type)] { diff --git a/toolchain/check/testdata/impl/generic_redeclaration.carbon b/toolchain/check/testdata/impl/generic_redeclaration.carbon index 67f2797bffc36..1b283a79a416e 100644 --- a/toolchain/check/testdata/impl/generic_redeclaration.carbon +++ b/toolchain/check/testdata/impl/generic_redeclaration.carbon @@ -135,20 +135,20 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T.7ee: %I.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.09a: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.as_type.a67: type = facet_access_type %T.7ee [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.2af: = impl_witness file.%Interface.impl_witness_table.loc12, @T.as_type.as.Interface.impl.4a5(%T.7ee) [symbolic] +// CHECK:STDOUT: %T.binding.as_type.1b7: type = symbolic_binding_type T, 0, %T.7ee [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.9c5: = impl_witness file.%Interface.impl_witness_table.loc12, @T.binding.as_type.as.Interface.impl.c91(%T.7ee) [symbolic] // CHECK:STDOUT: %T.bf6: %J.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.84b: type = pattern_type %J.type [concrete] -// CHECK:STDOUT: %T.as_type.4e7: type = facet_access_type %T.bf6 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.78f: = impl_witness file.%Interface.impl_witness_table.loc13, @T.as_type.as.Interface.impl.654(%T.bf6) [symbolic] +// CHECK:STDOUT: %T.binding.as_type.09d: type = symbolic_binding_type T, 0, %T.bf6 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.df0: = impl_witness file.%Interface.impl_witness_table.loc13, @T.binding.as_type.as.Interface.impl.117(%T.bf6) [symbolic] // CHECK:STDOUT: %T.9b6: %K.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.0fc: type = pattern_type %K.type [concrete] -// CHECK:STDOUT: %T.as_type.311: type = facet_access_type %T.9b6 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.0d1: = impl_witness file.%Interface.impl_witness_table.loc14, @T.as_type.as.Interface.impl.8ce(%T.9b6) [symbolic] +// CHECK:STDOUT: %T.binding.as_type.4c4: type = symbolic_binding_type T, 0, %T.9b6 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.39f: = impl_witness file.%Interface.impl_witness_table.loc14, @T.binding.as_type.as.Interface.impl.96a(%T.9b6) [symbolic] // CHECK:STDOUT: %T.c04: %L.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.ebc: type = pattern_type %L.type [concrete] -// CHECK:STDOUT: %T.as_type.3c8: type = facet_access_type %T.c04 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.be6: = impl_witness file.%Interface.impl_witness_table.loc15, @T.as_type.as.Interface.impl.d4f(%T.c04) [symbolic] +// CHECK:STDOUT: %T.binding.as_type.19c: type = symbolic_binding_type T, 0, %T.c04 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.81c: = impl_witness file.%Interface.impl_witness_table.loc15, @T.binding.as_type.as.Interface.impl.9a4(%T.c04) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -173,12 +173,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.as_type.as.Interface.impl.4a5 [concrete] { +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.c91 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.09a = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12: %I.type = name_ref T, %T.loc12_14.1 [symbolic = %T.loc12_14.2 (constants.%T.7ee)] -// 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.a67)] -// 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.a67)] +// CHECK:STDOUT: %T.as_type.loc12: type = facet_access_type %T.ref.loc12 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.1b7)] +// CHECK:STDOUT: %.loc12_21: type = converted %T.ref.loc12, %T.as_type.loc12 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.1b7)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -186,14 +186,14 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc12_14.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T.7ee)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.impl_witness_table.loc12 = impl_witness_table (), @T.as_type.as.Interface.impl.4a5 [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc12: = impl_witness %Interface.impl_witness_table.loc12, @T.as_type.as.Interface.impl.4a5(constants.%T.7ee) [symbolic = @T.as_type.as.Interface.impl.4a5.%Interface.impl_witness (constants.%Interface.impl_witness.2af)] -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.654 [concrete] { +// CHECK:STDOUT: %Interface.impl_witness_table.loc12 = impl_witness_table (), @T.binding.as_type.as.Interface.impl.c91 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc12: = impl_witness %Interface.impl_witness_table.loc12, @T.binding.as_type.as.Interface.impl.c91(constants.%T.7ee) [symbolic = @T.binding.as_type.as.Interface.impl.c91.%Interface.impl_witness (constants.%Interface.impl_witness.9c5)] +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.117 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.84b = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc13_14.1 [symbolic = %T.loc13_14.2 (constants.%T.bf6)] -// 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.4e7)] -// 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.4e7)] +// CHECK:STDOUT: %T.as_type.loc13: type = facet_access_type %T.ref.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.09d)] +// CHECK:STDOUT: %.loc13_21: type = converted %T.ref.loc13, %T.as_type.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.09d)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -201,14 +201,14 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc13_14.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_14.2 (constants.%T.bf6)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.impl_witness_table.loc13 = impl_witness_table (), @T.as_type.as.Interface.impl.654 [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc13: = impl_witness %Interface.impl_witness_table.loc13, @T.as_type.as.Interface.impl.654(constants.%T.bf6) [symbolic = @T.as_type.as.Interface.impl.654.%Interface.impl_witness (constants.%Interface.impl_witness.78f)] -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.8ce [concrete] { +// CHECK:STDOUT: %Interface.impl_witness_table.loc13 = impl_witness_table (), @T.binding.as_type.as.Interface.impl.117 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc13: = impl_witness %Interface.impl_witness_table.loc13, @T.binding.as_type.as.Interface.impl.117(constants.%T.bf6) [symbolic = @T.binding.as_type.as.Interface.impl.117.%Interface.impl_witness (constants.%Interface.impl_witness.df0)] +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.96a [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.0fc = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc14: %K.type = name_ref T, %T.loc14_14.1 [symbolic = %T.loc14_14.2 (constants.%T.9b6)] -// 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.311)] -// 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.311)] +// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c4)] +// CHECK:STDOUT: %.loc14_21: type = converted %T.ref.loc14, %T.as_type.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c4)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -216,14 +216,14 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc14_14.1: %K.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T.9b6)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.impl_witness_table.loc14 = impl_witness_table (), @T.as_type.as.Interface.impl.8ce [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc14: = impl_witness %Interface.impl_witness_table.loc14, @T.as_type.as.Interface.impl.8ce(constants.%T.9b6) [symbolic = @T.as_type.as.Interface.impl.8ce.%Interface.impl_witness (constants.%Interface.impl_witness.0d1)] -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.d4f [concrete] { +// CHECK:STDOUT: %Interface.impl_witness_table.loc14 = impl_witness_table (), @T.binding.as_type.as.Interface.impl.96a [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc14: = impl_witness %Interface.impl_witness_table.loc14, @T.binding.as_type.as.Interface.impl.96a(constants.%T.9b6) [symbolic = @T.binding.as_type.as.Interface.impl.96a.%Interface.impl_witness (constants.%Interface.impl_witness.39f)] +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.9a4 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.ebc = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc15: %L.type = name_ref T, %T.loc15_14.1 [symbolic = %T.loc15_14.2 (constants.%T.c04)] -// 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.3c8)] -// 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.3c8)] +// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.19c)] +// CHECK:STDOUT: %.loc15_21: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.19c)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -231,14 +231,14 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15_14.1: %L.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_14.2 (constants.%T.c04)] // CHECK:STDOUT: } -// CHECK:STDOUT: %Interface.impl_witness_table.loc15 = impl_witness_table (), @T.as_type.as.Interface.impl.d4f [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc15: = impl_witness %Interface.impl_witness_table.loc15, @T.as_type.as.Interface.impl.d4f(constants.%T.c04) [symbolic = @T.as_type.as.Interface.impl.d4f.%Interface.impl_witness (constants.%Interface.impl_witness.be6)] -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.4a5 [concrete] { +// CHECK:STDOUT: %Interface.impl_witness_table.loc15 = impl_witness_table (), @T.binding.as_type.as.Interface.impl.9a4 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc15: = impl_witness %Interface.impl_witness_table.loc15, @T.binding.as_type.as.Interface.impl.9a4(constants.%T.c04) [symbolic = @T.binding.as_type.as.Interface.impl.9a4.%Interface.impl_witness (constants.%Interface.impl_witness.81c)] +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.c91 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.09a = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc19: %I.type = name_ref T, %T.loc19 [symbolic = %T.loc12_14.2 (constants.%T.7ee)] -// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a67)] -// CHECK:STDOUT: %.loc19_21: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a67)] +// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.1b7)] +// CHECK:STDOUT: %.loc19_21: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.1b7)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -246,12 +246,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc19: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T.7ee)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.654 [concrete] { +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.117 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.84b = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc27: %J.type = name_ref T, %T.loc27 [symbolic = %T.loc13_14.2 (constants.%T.bf6)] -// CHECK:STDOUT: %T.as_type.loc27: type = facet_access_type %T.ref.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.4e7)] -// CHECK:STDOUT: %.loc27_21: type = converted %T.ref.loc27, %T.as_type.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.4e7)] +// CHECK:STDOUT: %T.as_type.loc27: type = facet_access_type %T.ref.loc27 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.09d)] +// CHECK:STDOUT: %.loc27_21: type = converted %T.ref.loc27, %T.as_type.loc27 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.09d)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -259,12 +259,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc27: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_14.2 (constants.%T.bf6)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.8ce [concrete] { +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.96a [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.0fc = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc35: %K.type = name_ref T, %T.loc35 [symbolic = %T.loc14_14.2 (constants.%T.9b6)] -// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type %T.ref.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.311)] -// CHECK:STDOUT: %.loc35_21: type = converted %T.ref.loc35, %T.as_type.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.311)] +// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type %T.ref.loc35 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c4)] +// CHECK:STDOUT: %.loc35_21: type = converted %T.ref.loc35, %T.as_type.loc35 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c4)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -272,12 +272,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc35: %K.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T.9b6)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.d4f [concrete] { +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.9a4 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.ebc = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc43: %L.type = name_ref T, %T.loc43 [symbolic = %T.loc15_14.2 (constants.%T.c04)] -// CHECK:STDOUT: %T.as_type.loc43: type = facet_access_type %T.ref.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.3c8)] -// CHECK:STDOUT: %.loc43_21: type = converted %T.ref.loc43, %T.as_type.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.3c8)] +// CHECK:STDOUT: %T.as_type.loc43: type = facet_access_type %T.ref.loc43 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.19c)] +// CHECK:STDOUT: %.loc43_21: type = converted %T.ref.loc43, %T.as_type.loc43 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.19c)] // 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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -327,10 +327,10 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.4a5(%T.loc12_14.1: %I.type) { +// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.c91(%T.loc12_14.1: %I.type) { // CHECK:STDOUT: %T.loc12_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T.7ee)] -// CHECK:STDOUT: %T.as_type.loc12_21.2: type = facet_access_type %T.loc12_14.2 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.a67)] -// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc12, @T.as_type.as.Interface.impl.4a5(%T.loc12_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.2af)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_14.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.1b7)] +// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc12, @T.binding.as_type.as.Interface.impl.c91(%T.loc12_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.9c5)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -340,10 +340,10 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.654(%T.loc13_14.1: %J.type) { +// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.117(%T.loc13_14.1: %J.type) { // CHECK:STDOUT: %T.loc13_14.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc13_14.2 (constants.%T.bf6)] -// CHECK:STDOUT: %T.as_type.loc13_21.2: type = facet_access_type %T.loc13_14.2 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.4e7)] -// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc13, @T.as_type.as.Interface.impl.654(%T.loc13_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.78f)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc13_14.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.09d)] +// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc13, @T.binding.as_type.as.Interface.impl.117(%T.loc13_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.df0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -353,10 +353,10 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.8ce(%T.loc14_14.1: %K.type) { +// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.96a(%T.loc14_14.1: %K.type) { // CHECK:STDOUT: %T.loc14_14.2: %K.type = bind_symbolic_name T, 0 [symbolic = %T.loc14_14.2 (constants.%T.9b6)] -// CHECK:STDOUT: %T.as_type.loc14_21.2: type = facet_access_type %T.loc14_14.2 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.311)] -// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc14, @T.as_type.as.Interface.impl.8ce(%T.loc14_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.0d1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc14_14.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c4)] +// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc14, @T.binding.as_type.as.Interface.impl.96a(%T.loc14_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.39f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -366,10 +366,10 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.d4f(%T.loc15_14.1: %L.type) { +// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.9a4(%T.loc15_14.1: %L.type) { // CHECK:STDOUT: %T.loc15_14.2: %L.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_14.2 (constants.%T.c04)] -// CHECK:STDOUT: %T.as_type.loc15_21.2: type = facet_access_type %T.loc15_14.2 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.3c8)] -// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc15, @T.as_type.as.Interface.impl.d4f(%T.loc15_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.be6)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc15_14.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.19c)] +// CHECK:STDOUT: %Interface.impl_witness: = impl_witness file.%Interface.impl_witness_table.loc15, @T.binding.as_type.as.Interface.impl.9a4(%T.loc15_14.2) [symbolic = %Interface.impl_witness (constants.%Interface.impl_witness.81c)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -379,28 +379,28 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.4a5(constants.%T.7ee) { +// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.c91(constants.%T.7ee) { // CHECK:STDOUT: %T.loc12_14.2 => constants.%T.7ee -// CHECK:STDOUT: %T.as_type.loc12_21.2 => constants.%T.as_type.a67 -// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.2af +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.1b7 +// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.9c5 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.654(constants.%T.bf6) { +// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.117(constants.%T.bf6) { // CHECK:STDOUT: %T.loc13_14.2 => constants.%T.bf6 -// CHECK:STDOUT: %T.as_type.loc13_21.2 => constants.%T.as_type.4e7 -// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.78f +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.09d +// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.df0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.8ce(constants.%T.9b6) { +// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.96a(constants.%T.9b6) { // CHECK:STDOUT: %T.loc14_14.2 => constants.%T.9b6 -// CHECK:STDOUT: %T.as_type.loc14_21.2 => constants.%T.as_type.311 -// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.0d1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.4c4 +// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.39f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.d4f(constants.%T.c04) { +// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.9a4(constants.%T.c04) { // CHECK:STDOUT: %T.loc15_14.2 => constants.%T.c04 -// CHECK:STDOUT: %T.as_type.loc15_21.2 => constants.%T.as_type.3c8 -// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.be6 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.19c +// CHECK:STDOUT: %Interface.impl_witness => constants.%Interface.impl_witness.81c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_same_self_and_interface_redefined.carbon @@ -414,8 +414,8 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %J.impl_witness: = impl_witness file.%J.impl_witness_table, @T.as_type.as.J.impl.4c8c3a.1(%T) [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %J.impl_witness: = impl_witness file.%J.impl_witness_table, @T.binding.as_type.as.J.impl.ed0bf9.1(%T) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -434,12 +434,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.as_type.as.J.impl.4c8c3a.1 [concrete] { +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.J.impl.ed0bf9.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_14.1 [symbolic = %T.loc7_14.2 (constants.%T)] -// 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: %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: %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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -447,14 +447,14 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_14.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_14.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (), @T.as_type.as.J.impl.4c8c3a.1 [concrete] -// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table, @T.as_type.as.J.impl.4c8c3a.1(constants.%T) [symbolic = @T.as_type.as.J.impl.4c8c3a.1.%J.impl_witness (constants.%J.impl_witness)] -// CHECK:STDOUT: impl_decl @T.as_type.as.J.impl.4c8c3a.2 [concrete] { +// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.J.impl.ed0bf9.1 [concrete] +// CHECK:STDOUT: %J.impl_witness: = impl_witness %J.impl_witness_table, @T.binding.as_type.as.J.impl.ed0bf9.1(constants.%T) [symbolic = @T.binding.as_type.as.J.impl.ed0bf9.1.%J.impl_witness (constants.%J.impl_witness)] +// CHECK:STDOUT: impl_decl @T.binding.as_type.as.J.impl.ed0bf9.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_14.1 [symbolic = %T.loc15_14.2 (constants.%T)] -// 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: %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: %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 = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -480,10 +480,10 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.4c8c3a.1(%T.loc7_14.1: %I.type) { +// CHECK:STDOUT: generic impl @T.binding.as_type.as.J.impl.ed0bf9.1(%T.loc7_14.1: %I.type) { // CHECK:STDOUT: %T.loc7_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc7_14.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc7_21.2: type = facet_access_type %T.loc7_14.2 [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] -// CHECK:STDOUT: %J.impl_witness: = impl_witness file.%J.impl_witness_table, @T.as_type.as.J.impl.4c8c3a.1(%T.loc7_14.2) [symbolic = %J.impl_witness (constants.%J.impl_witness)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc7_14.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %J.impl_witness: = impl_witness file.%J.impl_witness_table, @T.binding.as_type.as.J.impl.ed0bf9.1(%T.loc7_14.2) [symbolic = %J.impl_witness (constants.%J.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -493,9 +493,9 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.4c8c3a.2(%T.loc15_14.1: %I.type) { +// CHECK:STDOUT: generic impl @T.binding.as_type.as.J.impl.ed0bf9.2(%T.loc15_14.1: %I.type) { // CHECK:STDOUT: %T.loc15_14.2: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc15_14.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc15_21.2: type = facet_access_type %T.loc15_14.2 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc15_14.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -505,15 +505,15 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.J.impl.4c8c3a.1(constants.%T) { +// CHECK:STDOUT: specific @T.binding.as_type.as.J.impl.ed0bf9.1(constants.%T) { // CHECK:STDOUT: %T.loc7_14.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc7_21.2 => constants.%T.as_type +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %J.impl_witness => constants.%J.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as_type.as.J.impl.4c8c3a.2(constants.%T) { +// CHECK:STDOUT: specific @T.binding.as_type.as.J.impl.ed0bf9.2(constants.%T) { // CHECK:STDOUT: %T.loc15_14.2 => constants.%T -// CHECK:STDOUT: %T.as_type.loc15_21.2 => constants.%T.as_type +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_same_type_different_spelling.carbon diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index 3609d6ba79ce0..2d564d92cb470 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -47,10 +47,10 @@ class C { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -128,11 +128,11 @@ class C { // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_7.2: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_assoc_const.carbon b/toolchain/check/testdata/impl/impl_assoc_const.carbon index 335e892ce8dfd..05876ee035d27 100644 --- a/toolchain/check/testdata/impl/impl_assoc_const.carbon +++ b/toolchain/check/testdata/impl/impl_assoc_const.carbon @@ -405,7 +405,7 @@ fn G() { // CHECK:STDOUT: %assoc0: %L.assoc_type = assoc_entity element0, @L.%W [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %L.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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] @@ -423,8 +423,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc13_20: %L.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %W.ref.loc13_20: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc13_31: %empty_tuple.type = tuple_literal () @@ -436,8 +436,8 @@ fn G() { // 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: %W.ref.loc13_42: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %.loc13_49: %empty_struct_type = struct_literal () @@ -450,8 +450,8 @@ fn G() { // 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: %W.ref.loc13_64: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %.loc13_71: %empty_struct_type = struct_literal () @@ -464,8 +464,8 @@ fn G() { // 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: %W.ref.loc13_86: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %.loc13_93: %empty_struct_type = struct_literal () @@ -501,7 +501,7 @@ fn G() { // CHECK:STDOUT: %assoc2: %M.assoc_type = assoc_entity element2, @M.%Z [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %M.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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] @@ -516,29 +516,29 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc13_20: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %X.ref.loc13_20: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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: %Y.ref.loc13_25: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] -// 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: %.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: %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: %Y.ref.loc13_32: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] -// 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: %.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: %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: %X.ref.loc13_37: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc2 [concrete = constants.%assoc2] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc13_50.2: type = converted %.loc13_50.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] 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 01663834711d5..216b08240320e 100644 --- a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon @@ -49,7 +49,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0.e7f: %I.assoc_type = assoc_entity element0, @I.%X [concrete] // CHECK:STDOUT: %.Self.364: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.364 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.364 [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.364, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0.805: %struct_type.a.b.fe2 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] @@ -144,8 +144,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.364] // CHECK:STDOUT: %.Self.ref.loc6_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.364] // CHECK:STDOUT: %X.ref.loc6_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.e7f] -// 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: %.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: %impl.elem0.loc6_20: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.805] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] @@ -172,8 +172,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %.loc6_48.3: %struct_type.a.b.fe2 = converted %.loc6_48.1, %struct.loc6_48 [concrete = constants.%struct] // CHECK:STDOUT: %.Self.ref.loc6_54: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.364] // CHECK:STDOUT: %X.ref.loc6_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.e7f] -// 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: %.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: %impl.elem0.loc6_54: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.805] // CHECK:STDOUT: %impl.elem0.subst: %struct_type.a.b.fe2 = impl_witness_access_substituted %impl.elem0.loc6_54, %.loc6_48.3 [concrete = constants.%struct] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] @@ -265,7 +265,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0.e7f: %I.assoc_type = assoc_entity element0, @I.%X [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0.805: %struct_type.a.b.fe2 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] @@ -336,8 +336,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %X.ref.loc10_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.e7f] -// 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: %.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: %impl.elem0.loc10_20: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.805] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] @@ -364,8 +364,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // 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: %X.ref.loc10_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.e7f] -// 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: %.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: %impl.elem0.loc10_54: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.805] // 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] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index d200329123ea6..824cc2a76cf9d 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -334,8 +334,8 @@ impl () as I({}) { // CHECK:STDOUT: %struct: %struct_type.c.d.15a = struct_value (%empty_tuple, %empty_struct) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.d.c.b36, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.80a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b26: %DestroyT.as_type.as.Destroy.impl.Op.type.80a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.94a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.db8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.94a = struct_value () [concrete] // CHECK:STDOUT: %ptr.eab: type = ptr_type %struct_type.d.c.b36 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,11 +399,11 @@ impl () as I({}) { // CHECK:STDOUT: %.loc10_48.12: init %struct_type.c.d.15a = converted %empty_tuple.type.as.I.impl.F.call, %.loc10_48.11 [concrete = constants.%struct] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.d.c.b36, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_48.13: %type_where = converted constants.%struct_type.d.c.b36, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_48.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b26 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_48.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.db8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc10_48.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc10_48.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.eab = addr_of %.loc10_48.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %.loc10_48.12 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -668,8 +668,8 @@ impl () as I({}) { // CHECK:STDOUT: %A.as.X.impl.F.0afbb1.2: %A.as.X.impl.F.type.dc7bda.2 = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %B, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.018: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.68f: %DestroyT.as_type.as.Destroy.impl.Op.type.018 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7d9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.e79: type = ptr_type %B [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -711,11 +711,11 @@ impl () as I({}) { // CHECK:STDOUT: %.loc23_14.5: %A = bind_value %.loc23_14.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%B, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_14.6: %type_where = converted constants.%B, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_14.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.68f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc23_14.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7d9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc23_14.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc23_14.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.e79 = addr_of %.loc23_14.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -725,8 +725,8 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %U.be8: %Copy.type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %U.as_type.870: type = facet_access_type %U.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %U.as_type.870 [symbolic] +// CHECK:STDOUT: %U.binding.as_type.2a0: type = symbolic_binding_type U, 0, %U.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %U.binding.as_type.2a0 [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.e6fdf8.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.f1aebb.1: %empty_tuple.type.as.I.impl.F.type.e6fdf8.1 = struct_value () [concrete] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] @@ -734,7 +734,7 @@ impl () as I({}) { // CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.f1aebb.2: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2 = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.07c867.1: = require_complete_type %U.as_type.870 [symbolic] +// CHECK:STDOUT: %require_complete.1cd77c.1: = require_complete_type %U.binding.as_type.2a0 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %require_complete.6e5: = require_complete_type %ptr.79f [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.2: = lookup_impl_witness %U.be8, @Copy [symbolic] @@ -761,29 +761,29 @@ 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.e6fdf8.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.f1aebb.1] { // CHECK:STDOUT: %U.patt: %pattern_type.322 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.965801.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.965801.1) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc10_32: %Copy.type = name_ref U, %U.loc10_8.2 [symbolic = %U.loc10_8.1 (constants.%U.be8)] -// 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.870)] -// CHECK:STDOUT: %.loc10_32: type = converted %U.ref.loc10_32, %U.as_type.loc10_32 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.870)] +// 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.2a0)] +// CHECK:STDOUT: %.loc10_32: type = converted %U.ref.loc10_32, %U.as_type.loc10_32 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] // 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_8.2: %Copy.type = bind_symbolic_name U, 0 [symbolic = %U.loc10_8.1 (constants.%U.be8)] -// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = 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.870)] { +// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.2a0) = 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.2a0)] { // CHECK:STDOUT: %U.ref.loc10_26: %Copy.type = name_ref U, %U.loc10_8.2 [symbolic = %U.loc10_8.1 (constants.%U.be8)] -// 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.870)] -// 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.870)] +// 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.2a0)] +// 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.2a0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = bind_name 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.870) = 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.870) = return_slot %return.param +// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.2a0) = bind_name 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.2a0) = 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.2a0) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.2: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.f1aebb.2] { // CHECK:STDOUT: @@ -798,25 +798,25 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @empty_tuple.type.as.I.impl.F.loc10_34.1(%U.loc10_8.2: %Copy.type) { // CHECK:STDOUT: %U.loc10_8.1: %Copy.type = bind_symbolic_name U, 0 [symbolic = %U.loc10_8.1 (constants.%U.be8)] -// CHECK:STDOUT: %U.as_type.loc10_26.1: type = facet_access_type %U.loc10_8.1 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.870)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_26.1 [symbolic = %pattern_type (constants.%pattern_type.965801.1)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc10_8.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_26.1 [symbolic = %require_complete (constants.%require_complete.07c867.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.1cd77c.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_8.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.2)] // CHECK:STDOUT: %.loc10_43.2: type = fn_type_with_self_type constants.%Copy.Op.type, %U.loc10_8.1 [symbolic = %.loc10_43.2 (constants.%.427cc3.2)] // CHECK:STDOUT: %impl.elem0.loc10_43.2: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43.2 (%.427cc3.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.168dc4.2)] // CHECK:STDOUT: %specific_impl_fn.loc10_43.2: = specific_impl_function %impl.elem0.loc10_43.2, @Copy.Op(%U.loc10_8.1) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870)) -> %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) { +// CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.2a0)) -> %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.2a0) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.2a0) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc10_43.1: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43.2 (%.427cc3.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.168dc4.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.Op(constants.%U.be8) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: %bound_method.loc10_43.2: = bound_method %x.ref, %specific_impl_fn.loc10_43.1 -// CHECK:STDOUT: %.loc10_29: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = splice_block %return {} -// CHECK:STDOUT: %.loc10_43.1: init @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.870) = call %bound_method.loc10_43.2(%x.ref) to %.loc10_29 +// CHECK:STDOUT: %.loc10_29: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.2a0) = splice_block %return {} +// CHECK:STDOUT: %.loc10_43.1: init @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.2a0) = call %bound_method.loc10_43.2(%x.ref) to %.loc10_29 // CHECK:STDOUT: return %.loc10_43.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -846,8 +846,8 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%U.be8) { // CHECK:STDOUT: %U.loc10_8.1 => constants.%U.be8 -// CHECK:STDOUT: %U.as_type.loc10_26.1 => constants.%U.as_type.870 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type.2a0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.2(constants.%T.8b3) { @@ -858,7 +858,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_8.1 => constants.%Copy.facet -// CHECK:STDOUT: %U.as_type.loc10_26.1 => constants.%ptr.79f +// CHECK:STDOUT: %U.binding.as_type => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -877,8 +877,8 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %U.be8: %Copy.type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] -// CHECK:STDOUT: %U.as_type.870: type = facet_access_type %U.be8 [symbolic] -// CHECK:STDOUT: %pattern_type.965801.1: type = pattern_type %U.as_type.870 [symbolic] +// CHECK:STDOUT: %U.binding.as_type.2a0: type = symbolic_binding_type U, 0, %U.be8 [symbolic] +// CHECK:STDOUT: %pattern_type.17e4b7.1: type = pattern_type %U.binding.as_type.2a0 [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.e6fdf8.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc19_44.1 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.f1aebb.1: %empty_tuple.type.as.I.impl.F.type.e6fdf8.1 = struct_value () [concrete] // CHECK:STDOUT: %T.8b3: type = bind_symbolic_name T, 0 [symbolic] @@ -886,7 +886,7 @@ impl () as I({}) { // CHECK:STDOUT: %pattern_type.afe: type = pattern_type %ptr.79f [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc19_44.2 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.f1aebb.2: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2 = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.07c867.1: = require_complete_type %U.as_type.870 [symbolic] +// CHECK:STDOUT: %require_complete.1cd77c.1: = require_complete_type %U.binding.as_type.2a0 [symbolic] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.e15cec.2: = lookup_impl_witness %U.be8, @Copy [symbolic] // CHECK:STDOUT: %.427cc3.2: type = fn_type_with_self_type %Copy.Op.type, %U.be8 [symbolic] @@ -908,14 +908,14 @@ impl () as I({}) { // CHECK:STDOUT: %self.patt: %pattern_type.cb1 = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.322 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.965801.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.965801.1) = value_param_pattern %x.patt, call_param1 [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.965801.1) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.965801.1) = out_param_pattern %return.patt, call_param2 [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.17e4b7.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.17e4b7.1) = value_param_pattern %x.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.17e4b7.1) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc19_44.1.%pattern_type (%pattern_type.17e4b7.1) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc19_42: %Copy.type = name_ref U, %U.loc19_18.2 [symbolic = %U.loc19_18.1 (constants.%U.be8)] -// CHECK:STDOUT: %U.as_type.loc19_42: type = facet_access_type %U.ref.loc19_42 [symbolic = %U.as_type.loc19_36.1 (constants.%U.as_type.870)] -// CHECK:STDOUT: %.loc19_42: type = converted %U.ref.loc19_42, %U.as_type.loc19_42 [symbolic = %U.as_type.loc19_36.1 (constants.%U.as_type.870)] +// CHECK:STDOUT: %U.as_type.loc19_42: type = facet_access_type %U.ref.loc19_42 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] +// CHECK:STDOUT: %.loc19_42: type = converted %U.ref.loc19_42, %U.as_type.loc19_42 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc19_15.2: %empty_tuple.type = tuple_literal () @@ -928,15 +928,15 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc19_18.2: %Copy.type = bind_symbolic_name U, 0 [symbolic = %U.loc19_18.1 (constants.%U.be8)] -// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = value_param call_param1 -// CHECK:STDOUT: %.loc19_36.1: type = splice_block %.loc19_36.2 [symbolic = %U.as_type.loc19_36.1 (constants.%U.as_type.870)] { +// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) = value_param call_param1 +// CHECK:STDOUT: %.loc19_36.1: type = splice_block %.loc19_36.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] { // CHECK:STDOUT: %U.ref.loc19_36: %Copy.type = name_ref U, %U.loc19_18.2 [symbolic = %U.loc19_18.1 (constants.%U.be8)] -// CHECK:STDOUT: %U.as_type.loc19_36.2: type = facet_access_type %U.ref.loc19_36 [symbolic = %U.as_type.loc19_36.1 (constants.%U.as_type.870)] -// CHECK:STDOUT: %.loc19_36.2: type = converted %U.ref.loc19_36, %U.as_type.loc19_36.2 [symbolic = %U.as_type.loc19_36.1 (constants.%U.as_type.870)] +// CHECK:STDOUT: %U.as_type.loc19_36: type = facet_access_type %U.ref.loc19_36 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] +// CHECK:STDOUT: %.loc19_36.2: type = converted %U.ref.loc19_36, %U.as_type.loc19_36 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = out_param call_param2 -// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = return_slot %return.param +// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) = out_param call_param2 +// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc19_44.2: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc19_44.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.f1aebb.2] { // CHECK:STDOUT: @@ -951,25 +951,25 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @empty_tuple.type.as.I.impl.F.loc19_44.1(%U.loc19_18.2: %Copy.type) { // CHECK:STDOUT: %U.loc19_18.1: %Copy.type = bind_symbolic_name U, 0 [symbolic = %U.loc19_18.1 (constants.%U.be8)] -// CHECK:STDOUT: %U.as_type.loc19_36.1: type = facet_access_type %U.loc19_18.1 [symbolic = %U.as_type.loc19_36.1 (constants.%U.as_type.870)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc19_36.1 [symbolic = %pattern_type (constants.%pattern_type.965801.1)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc19_18.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.2a0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.17e4b7.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc19_36.1 [symbolic = %require_complete (constants.%require_complete.07c867.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.1cd77c.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc19_18.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.e15cec.2)] // CHECK:STDOUT: %.loc19_53.2: type = fn_type_with_self_type constants.%Copy.Op.type, %U.loc19_18.1 [symbolic = %.loc19_53.2 (constants.%.427cc3.2)] // CHECK:STDOUT: %impl.elem0.loc19_53.2: @empty_tuple.type.as.I.impl.F.loc19_44.1.%.loc19_53.2 (%.427cc3.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc19_53.2 (constants.%impl.elem0.168dc4.2)] // CHECK:STDOUT: %specific_impl_fn.loc19_53.2: = specific_impl_function %impl.elem0.loc19_53.2, @Copy.Op(%U.loc19_18.1) [symbolic = %specific_impl_fn.loc19_53.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870)) -> %return.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) { +// CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0)) -> %return.param: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc19_53.1: @empty_tuple.type.as.I.impl.F.loc19_44.1.%.loc19_53.2 (%.427cc3.2) = impl_witness_access constants.%Copy.lookup_impl_witness.e15cec.2, element0 [symbolic = %impl.elem0.loc19_53.2 (constants.%impl.elem0.168dc4.2)] // CHECK:STDOUT: %bound_method.loc19_53.1: = bound_method %x.ref, %impl.elem0.loc19_53.1 // CHECK:STDOUT: %specific_impl_fn.loc19_53.1: = specific_impl_function %impl.elem0.loc19_53.1, @Copy.Op(constants.%U.be8) [symbolic = %specific_impl_fn.loc19_53.2 (constants.%specific_impl_fn.2cedd6.2)] // CHECK:STDOUT: %bound_method.loc19_53.2: = bound_method %x.ref, %specific_impl_fn.loc19_53.1 -// CHECK:STDOUT: %.loc19_39: ref @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = splice_block %return {} -// CHECK:STDOUT: %.loc19_53.1: init @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.as_type.loc19_36.1 (%U.as_type.870) = call %bound_method.loc19_53.2(%x.ref) to %.loc19_39 +// CHECK:STDOUT: %.loc19_39: ref @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) = splice_block %return {} +// CHECK:STDOUT: %.loc19_53.1: init @empty_tuple.type.as.I.impl.F.loc19_44.1.%U.binding.as_type (%U.binding.as_type.2a0) = call %bound_method.loc19_53.2(%x.ref) to %.loc19_39 // CHECK:STDOUT: return %.loc19_53.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -989,8 +989,8 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc19_44.1(constants.%U.be8) { // CHECK:STDOUT: %U.loc19_18.1 => constants.%U.be8 -// CHECK:STDOUT: %U.as_type.loc19_36.1 => constants.%U.as_type.870 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965801.1 +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type.2a0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.17e4b7.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc19_44.2(constants.%T.8b3) { @@ -1015,8 +1015,8 @@ impl () as I({}) { // CHECK:STDOUT: %struct: %struct_type.a.b.f95 = struct_value (%empty_struct, %empty_struct) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.b.a.1b0, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ee6: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.696: %DestroyT.as_type.as.Destroy.impl.Op.type.ee6 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.6b8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.637: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.6b8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.30d: type = ptr_type %struct_type.b.a.1b0 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1068,11 +1068,11 @@ impl () as I({}) { // CHECK:STDOUT: %.loc10_29.12: init %struct_type.a.b.f95 = converted %empty_tuple.type.as.I.impl.F.call, %.loc10_29.11 [concrete = constants.%struct] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.b.a.1b0, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_29.13: %type_where = converted constants.%struct_type.b.a.1b0, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_29.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.696 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_29.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.637 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc10_29.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc10_29.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.30d = addr_of %.loc10_29.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %.loc10_29.12 to %return // CHECK:STDOUT: } // 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 526dbb6a5a321..11dc7057830a4 100644 --- a/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon @@ -121,12 +121,12 @@ fn Call() -> Int(32) { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness) [concrete] // CHECK:STDOUT: %.0f5: type = fn_type_with_self_type %ImplicitAs.Convert.type.059, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.type.65a5a3.1: type = fn_type @i32.builtin.as.Add.impl.Op.loc15_35.1, @i32.builtin.as.Add.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.59c0f1.1: %i32.builtin.as.Add.impl.Op.type.65a5a3.1 = struct_value () [concrete] +// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.type.98f85d.1: type = fn_type @i32.builtin.as.Add.impl.Op.loc15_35.1, @i32.builtin.as.Add.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.e374c5.1: %i32.builtin.as.Add.impl.Op.type.98f85d.1 = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.e54: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_2.5a1: %i32.builtin = int_value 2 [concrete] -// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn.ffbee8.2: = specific_function %i32.builtin.as.Add.impl.Op.59c0f1.1, @i32.builtin.as.Add.impl.Op.loc15_35.1(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn.a3e7cf.2: = specific_function %i32.builtin.as.Add.impl.Op.e374c5.1, @i32.builtin.as.Add.impl.Op.loc15_35.1(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -142,14 +142,14 @@ fn Call() -> Int(32) { // CHECK:STDOUT: %ImplicitAs.facet.loc25_14.2: %ImplicitAs.type.873 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness) [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %.loc25_14.2: %ImplicitAs.type.873 = converted Core.IntLiteral, %ImplicitAs.facet.loc25_14.2 [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc25_14.3: %i32.builtin.as.Add.impl.Op.type.65a5a3.1 = specific_constant @i32.builtin.as.Add.impl.%i32.builtin.as.Add.impl.Op.decl.loc15_35.1, @i32.builtin.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.builtin.as.Add.impl.Op.59c0f1.1] -// CHECK:STDOUT: %Op.ref.loc25: %i32.builtin.as.Add.impl.Op.type.65a5a3.1 = name_ref Op, %.loc25_14.3 [concrete = constants.%i32.builtin.as.Add.impl.Op.59c0f1.1] +// CHECK:STDOUT: %.loc25_14.3: %i32.builtin.as.Add.impl.Op.type.98f85d.1 = specific_constant @i32.builtin.as.Add.impl.%i32.builtin.as.Add.impl.Op.decl.loc15_35.1, @i32.builtin.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.builtin.as.Add.impl.Op.e374c5.1] +// CHECK:STDOUT: %Op.ref.loc25: %i32.builtin.as.Add.impl.Op.type.98f85d.1 = name_ref Op, %.loc25_14.3 [concrete = constants.%i32.builtin.as.Add.impl.Op.e374c5.1] // CHECK:STDOUT: %impl.elem0.loc25_14: %.0f5 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc25_14: = bound_method %int_2, %impl.elem0.loc25_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.e54] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25_14: init %i32.builtin = call %bound_method.loc25_14(%int_2) [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc25_14.4: %i32.builtin = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25_14 [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc25_14.5: %i32.builtin = converted %int_2, %.loc25_14.4 [concrete = constants.%int_2.5a1] -// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc25, @i32.builtin.as.Add.impl.Op.loc15_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.builtin.as.Add.impl.Op.specific_fn.ffbee8.2] +// CHECK:STDOUT: %i32.builtin.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc25, @i32.builtin.as.Add.impl.Op.loc15_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.builtin.as.Add.impl.Op.specific_fn.a3e7cf.2] // CHECK:STDOUT: %impl.elem0.loc25_13: %.0f5 = impl_witness_access constants.%ImplicitAs.impl_witness, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc25_13: = bound_method %int_2, %impl.elem0.loc25_13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.e54] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc25_13: init %i32.builtin = call %bound_method.loc25_13(%int_2) [concrete = constants.%int_2.5a1] diff --git a/toolchain/check/testdata/impl/import_builtin_call.carbon b/toolchain/check/testdata/impl/import_builtin_call.carbon index 6135f86243bb7..c79958c7c3310 100644 --- a/toolchain/check/testdata/impl/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/import_builtin_call.carbon @@ -85,8 +85,8 @@ 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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.8ad: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f29: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Add.Op.type: type = fn_type @Add.Op [concrete] // CHECK:STDOUT: %Add.Op: %Add.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] @@ -217,32 +217,32 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: interface @Add { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %Add.Op.decl: %Add.Op.type = fn_decl @Add.Op [concrete = constants.%Add.Op] { -// CHECK:STDOUT: %self.patt: @Add.Op.%pattern_type (%pattern_type.8ad) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Add.Op.%pattern_type (%pattern_type.8ad) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %other.patt: @Add.Op.%pattern_type (%pattern_type.8ad) = binding_pattern other [concrete] -// CHECK:STDOUT: %other.param_patt: @Add.Op.%pattern_type (%pattern_type.8ad) = value_param_pattern %other.patt, call_param1 [concrete] -// CHECK:STDOUT: %return.patt: @Add.Op.%pattern_type (%pattern_type.8ad) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @Add.Op.%pattern_type (%pattern_type.8ad) = out_param_pattern %return.patt, call_param2 [concrete] +// CHECK:STDOUT: %self.patt: @Add.Op.%pattern_type (%pattern_type.f29) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Add.Op.%pattern_type (%pattern_type.f29) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %other.patt: @Add.Op.%pattern_type (%pattern_type.f29) = binding_pattern other [concrete] +// CHECK:STDOUT: %other.param_patt: @Add.Op.%pattern_type (%pattern_type.f29) = value_param_pattern %other.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @Add.Op.%pattern_type (%pattern_type.f29) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @Add.Op.%pattern_type (%pattern_type.f29) = out_param_pattern %return.patt, call_param2 [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.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_37: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @Add.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.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: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %self.param: @Add.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.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @Add.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: @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @Add.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.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.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: %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: } -// CHECK:STDOUT: %other: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %other: @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, %Add.Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -315,10 +315,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.Op(@Add.%Self: %Add.type) { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.8ad)] +// 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.f29)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type)) -> @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type); +// CHECK:STDOUT: fn(%self.param: @Add.Op.%Self.binding.as_type (%Self.binding.as_type), %other.param: @Add.Op.%Self.binding.as_type (%Self.binding.as_type)) -> @Add.Op.%Self.binding.as_type (%Self.binding.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @IntLiteral() -> type = "int_literal.make_type"; @@ -369,8 +369,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8ad +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(constants.%N) { @@ -401,7 +401,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Add.facet.366) { // CHECK:STDOUT: %Self => constants.%Add.facet.366 -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt +// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -413,7 +413,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Add.facet.7bd) { // CHECK:STDOUT: %Self => constants.%Add.facet.7bd -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt +// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -440,8 +440,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, imports.%Main.import_ref.5a3 [concrete] // CHECK:STDOUT: %Add.Op.type: type = fn_type @Add.Op [concrete] // CHECK:STDOUT: %Add.Op: %Add.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.8ad: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f29: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Add.impl_witness.be2: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%N) [symbolic] // CHECK:STDOUT: %MyInt.as.Add.impl.Op.type.f50: type = fn_type @MyInt.as.Add.impl.Op, @MyInt.as.Add.impl(%N) [symbolic] // CHECK:STDOUT: %MyInt.as.Add.impl.Op.319: %MyInt.as.Add.impl.Op.type.f50 = struct_value () [symbolic] @@ -595,8 +595,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.Op(imports.%Main.import_ref.942: %Add.type) [from "generic_impl.carbon"] { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.8ad)] +// 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.f29)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -656,8 +656,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8ad +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt.as.Add.impl(constants.%N) { @@ -704,7 +704,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Add.facet.7bd) { // CHECK:STDOUT: %Self => constants.%Add.facet.7bd -// CHECK:STDOUT: %Self.as_type => constants.%MyInt.09f +// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt.09f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a71 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -724,7 +724,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Add.facet.e3e) { // CHECK:STDOUT: %Self => constants.%Add.facet.e3e -// CHECK:STDOUT: %Self.as_type => constants.%MyInt.f30 +// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt.f30 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e50 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_compound.carbon b/toolchain/check/testdata/impl/import_compound.carbon index 79e4b6312ae60..3994c9c6913e2 100644 --- a/toolchain/check/testdata/impl/import_compound.carbon +++ b/toolchain/check/testdata/impl/import_compound.carbon @@ -115,8 +115,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%NonInstance.impl_witness) [concrete] // CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete] // CHECK:STDOUT: %Self.c87: %Instance.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c87 [symbolic] -// CHECK:STDOUT: %pattern_type.648: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c87 [symbolic] +// CHECK:STDOUT: %pattern_type.dbb: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Instance.G.type: type = fn_type @Instance.G [concrete] // CHECK:STDOUT: %Instance.G: %Instance.G.type = struct_value () [concrete] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] @@ -176,16 +176,16 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: interface @Instance { // CHECK:STDOUT: %Self: %Instance.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.c87] // CHECK:STDOUT: %Instance.G.decl: %Instance.G.type = fn_decl @Instance.G [concrete = constants.%Instance.G] { -// CHECK:STDOUT: %self.patt: @Instance.G.%pattern_type (%pattern_type.648) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Instance.G.%pattern_type (%pattern_type.648) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Instance.G.%pattern_type (%pattern_type.dbb) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance.G.%pattern_type (%pattern_type.dbb) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Instance.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.param: @Instance.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.ref: %Instance.type = name_ref Self, @Instance.%Self [symbolic = %Self (constants.%Self.c87)] -// 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: %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: } -// CHECK:STDOUT: %self: @Instance.G.%Self.as_type.loc12_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Instance.G.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, %Instance.G.decl [concrete = constants.%assoc0.ab8] // CHECK:STDOUT: @@ -229,10 +229,10 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance.G(@Instance.%Self: %Instance.type) { // CHECK:STDOUT: %Self: %Instance.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.c87)] -// 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.648)] +// 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.dbb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Instance.G.%Self.as_type.loc12_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Instance.G.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @struct_type.i.as.Instance.impl.G(%self.param: %struct_type.i) { @@ -246,13 +246,13 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.G(constants.%Self.c87) { // CHECK:STDOUT: %Self => constants.%Self.c87 -// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.648 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dbb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.G(constants.%Instance.facet) { // CHECK:STDOUT: %Self => constants.%Instance.facet -// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%struct_type.i +// CHECK:STDOUT: %Self.binding.as_type => constants.%struct_type.i // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -516,8 +516,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b4d [concrete] // CHECK:STDOUT: %Instance.G.type: type = fn_type @Instance.G [concrete] // CHECK:STDOUT: %Instance.G: %Instance.G.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.648: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.dbb: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Instance.impl_witness: = impl_witness imports.%Instance.impl_witness_table [concrete] // CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%Instance.impl_witness) [concrete] // CHECK:STDOUT: %.41d: type = fn_type_with_self_type %Instance.G.type, %Instance.facet [concrete] @@ -612,8 +612,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance.G(imports.%Main.import_ref.334: %Instance.type) [from "lib.carbon"] { // CHECK:STDOUT: %Self: %Instance.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.648)] +// 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.dbb)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -639,8 +639,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.648 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dbb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_import_instance.carbon @@ -656,8 +656,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.b4d [concrete] // CHECK:STDOUT: %Instance.G.type: type = fn_type @Instance.G [concrete] // CHECK:STDOUT: %Instance.G: %Instance.G.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [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: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -713,15 +713,15 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance.G(imports.%Main.import_ref.334: %Instance.type) [from "lib.carbon"] { // CHECK:STDOUT: %Self: %Instance.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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: %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: // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // 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 8cc81e9e65f26..625f3384662aa 100644 --- a/toolchain/check/testdata/impl/import_interface_assoc_const.carbon +++ b/toolchain/check/testdata/impl/import_interface_assoc_const.carbon @@ -319,7 +319,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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 = %empty_struct_type> [concrete] @@ -353,8 +353,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc5_26.2: type = converted %.loc5_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -407,7 +407,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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 = %empty_struct_type> [concrete] @@ -441,8 +441,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc5: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc5: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc5_26.2: type = converted %.loc5_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -460,8 +460,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc6: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc6: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc6_26.2: type = converted %.loc6_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -512,7 +512,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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 = %empty_struct_type> [concrete] @@ -552,8 +552,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -608,7 +608,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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.type: type = tuple_type () [concrete] @@ -645,8 +645,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc9_26.2: type = converted %.loc9_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -664,8 +664,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -720,7 +720,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I3.type = bind_symbolic_name .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.5fb [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %I3.lookup_impl_witness: = lookup_impl_witness %.Self, @I3 [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I3.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %assoc1: %I3.assoc_type = assoc_entity element1, imports.%Main.import_ref.e26 [concrete] @@ -772,22 +772,22 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I3.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc17_21: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.f5f [concrete = constants.%assoc0] -// 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: %.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: %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: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.680 [concrete = constants.%assoc1] -// 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: %.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: %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 () // 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: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.181 [concrete = constants.%assoc2] -// 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: %.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: %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 = ] // CHECK:STDOUT: %.loc17_15: type = where_expr %.Self [concrete = ] { @@ -803,22 +803,22 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I3.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc27_21: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.f5f [concrete = constants.%assoc0] -// 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: %.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: %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 () // 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: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.680 [concrete = constants.%assoc1] -// 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: %.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: %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: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.181 [concrete = constants.%assoc2] -// 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: %.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: %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 = ] // CHECK:STDOUT: %.loc27_15: type = where_expr %.Self [concrete = ] { @@ -889,7 +889,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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 = %empty_struct_type> [concrete] @@ -924,8 +924,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc5_26.2: type = converted %.loc5_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -986,7 +986,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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.type: type = tuple_type () [concrete] @@ -1019,15 +1019,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // 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: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %.loc10_38.1: %empty_tuple.type = tuple_literal () @@ -1079,7 +1079,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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.type: type = tuple_type () [concrete] @@ -1113,14 +1113,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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: %T.ref.loc10_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 = ] // CHECK:STDOUT: %.loc10_40.1: %empty_tuple.type = tuple_literal () @@ -1172,7 +1172,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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: } @@ -1205,15 +1205,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // 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: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %BAD6.ref: = name_ref BAD6, [concrete = ] @@ -1264,7 +1264,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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: } @@ -1298,14 +1298,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc14_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc14_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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: %T.ref.loc14_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 = ] // CHECK:STDOUT: %BAD8.ref: = name_ref BAD8, [concrete = ] @@ -1356,7 +1356,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .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.652 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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 = %empty_struct_type> [concrete] @@ -1390,15 +1390,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc6_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref.loc6_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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 () // 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: %T.ref.loc6_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.4fb [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %.loc6_38.1: %empty_struct_type = struct_literal () @@ -1453,7 +1453,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %NonType.type = bind_symbolic_name .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.f3d [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %NonType.lookup_impl_witness: = lookup_impl_witness %.Self, @NonType [symbolic_self] // CHECK:STDOUT: %struct_type.a.225: type = struct_type {.a: %empty_struct_type} [concrete] // CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %NonType.lookup_impl_witness, element0 [symbolic_self] @@ -1490,8 +1490,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %NonType.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %NonType.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Y.ref: %NonType.assoc_type = name_ref Y, imports.%Main.import_ref.9fa [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc6_39.1: %struct_type.a.225 = struct_literal (%.loc6_38) @@ -1583,7 +1583,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %IF.type = bind_symbolic_name .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.4b7 [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %IF.lookup_impl_witness: = lookup_impl_witness %.Self, @IF [symbolic_self] // CHECK:STDOUT: %IF.F.type: type = fn_type @IF.F [concrete] // CHECK:STDOUT: %IF.F: %IF.F.type = struct_value () [concrete] @@ -1619,8 +1619,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %IF.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %IF.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %F.ref: %IF.assoc_type = name_ref F, imports.%Main.import_ref.f22 [concrete = constants.%assoc0] -// 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: %.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: %impl.elem0: %.ed4 = 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] // CHECK:STDOUT: %.loc10_15: type = where_expr %.Self [concrete = constants.%IF_where.type] { diff --git a/toolchain/check/testdata/impl/import_self.carbon b/toolchain/check/testdata/impl/import_self.carbon index e66db54da9f69..6eb2bfba3f827 100644 --- a/toolchain/check/testdata/impl/import_self.carbon +++ b/toolchain/check/testdata/impl/import_self.carbon @@ -39,8 +39,8 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [concrete] // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [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: %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: %Add.Op.type: type = fn_type @Add.Op [concrete] // CHECK:STDOUT: %Add.Op: %Add.Op.type = struct_value () [concrete] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] @@ -74,24 +74,24 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %return.param_patt: @Add.Op.%pattern_type (%pattern_type) = out_param_pattern %return.patt, call_param2 [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.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_37: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @Add.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.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: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %self.param: @Add.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.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %other.param: @Add.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: @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %other.param: @Add.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.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.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: %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: } -// CHECK:STDOUT: %other: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name other, %other.param -// CHECK:STDOUT: %return.param: ref @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %other: @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = bind_name other, %other.param +// CHECK:STDOUT: %return.param: ref @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Add.Op.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, %Add.Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -103,15 +103,15 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.Op(@Add.%Self: %Add.type) { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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: %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: -// CHECK:STDOUT: fn(%self.param: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type)) -> @Add.Op.%Self.as_type.loc5_15.1 (%Self.as_type); +// CHECK:STDOUT: fn(%self.param: @Add.Op.%Self.binding.as_type (%Self.binding.as_type), %other.param: @Add.Op.%Self.binding.as_type (%Self.binding.as_type)) -> @Add.Op.%Self.binding.as_type (%Self.binding.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -123,8 +123,8 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Add.Op.type: type = fn_type @Add.Op [concrete] // CHECK:STDOUT: %Add.Op: %Add.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.8ad: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f29: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Add.impl_witness: = impl_witness file.%Add.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %empty_tuple.type.as.Add.impl.Op.type: type = fn_type @empty_tuple.type.as.Add.impl.Op [concrete] @@ -227,8 +227,8 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.Op(imports.%Main.import_ref.942: %Add.type) [from "a.carbon"] { // CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.8ad)] +// 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.f29)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -255,13 +255,13 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8ad +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f29 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.Op(constants.%Add.facet) { // CHECK:STDOUT: %Self => constants.%Add.facet -// CHECK:STDOUT: %Self.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_thunk.carbon b/toolchain/check/testdata/impl/import_thunk.carbon index 049376997c6f2..509d0a77af8e9 100644 --- a/toolchain/check/testdata/impl/import_thunk.carbon +++ b/toolchain/check/testdata/impl/import_thunk.carbon @@ -134,17 +134,17 @@ fn G() { // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.13320f.2, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.177: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.020: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.775: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.7e5: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.070: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.7e5 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.40d: type = ptr_type %C.13320f.2 [symbolic] // CHECK:STDOUT: %require_complete.0b0: = require_complete_type %ptr.40d [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.13320f.2, (%Destroy.impl_witness.177) [symbolic] -// CHECK:STDOUT: %.f4e: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.020, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C.13320f.2, (%Destroy.impl_witness.775) [symbolic] +// CHECK:STDOUT: %.109: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.070, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -161,8 +161,8 @@ fn G() { // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.import_ref.f99: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.import_ref.725: %Destroy.Op.type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%Destroy.Op] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -290,12 +290,12 @@ fn G() { // CHECK:STDOUT: %require_complete.1: = require_complete_type %C [symbolic = %require_complete.1 (constants.%require_complete.a35)] // CHECK:STDOUT: %C.val: @C.as.I.impl.F.loc8_17.2.%C (%C.13320f.2) = struct_value () [symbolic = %C.val (constants.%C.val)] // CHECK:STDOUT: %facet_value.2: %type_where = facet_value %C, () [symbolic = %facet_value.2 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.177)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.775)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.7: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.7 (constants.%.f4e)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.4eb)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @C.as.I.impl.F.loc8_17.2.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.4eb) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.020)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %.7: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.7 (constants.%.109)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.7e5)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @C.as.I.impl.F.loc8_17.2.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.7e5) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.070)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %ptr: type = ptr_type %C [symbolic = %ptr (constants.%ptr.40d)] // CHECK:STDOUT: %require_complete.2: = require_complete_type %ptr [symbolic = %require_complete.2 (constants.%require_complete.0b0)] // CHECK:STDOUT: @@ -314,12 +314,12 @@ fn G() { // CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.f99 [concrete = constants.%assoc0] // CHECK:STDOUT: %facet_value.1: %type_where = facet_value constants.%C.13320f.2, () [symbolic = %facet_value.2 (constants.%facet_value)] // CHECK:STDOUT: %.6: %type_where = converted constants.%C.13320f.2, %facet_value.1 [symbolic = %facet_value.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0: @C.as.I.impl.F.loc8_17.2.%.7 (%.f4e) = impl_witness_access constants.%Destroy.impl_witness.177, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.020)] +// CHECK:STDOUT: %impl.elem0: @C.as.I.impl.F.loc8_17.2.%.7 (%.109) = impl_witness_access constants.%Destroy.impl_witness.775, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.070)] // CHECK:STDOUT: %bound_method.1: = bound_method %.3, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %bound_method.2: = bound_method %.3, %specific_fn // CHECK:STDOUT: %addr: @C.as.I.impl.F.loc8_17.2.%ptr (%ptr.40d) = addr_of %.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -395,15 +395,15 @@ fn G() { // CHECK:STDOUT: %facet_value.2c0: %type_where = facet_value %C.13320f.2, () [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.9f6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.2c0) [symbolic] -// CHECK:STDOUT: %Destroy.facet.3a2: %Destroy.type = facet_value %C.13320f.2, (%Destroy.impl_witness.9f6) [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.0e5: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2c0) [symbolic] +// CHECK:STDOUT: %Destroy.facet.53f: %Destroy.type = facet_value %C.13320f.2, (%Destroy.impl_witness.0e5) [symbolic] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] -// CHECK:STDOUT: %.0fa: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.3a2 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.3ba: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.736: %DestroyT.as_type.as.Destroy.impl.Op.type.3ba = struct_value () [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bdb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.2c0) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ff5: %DestroyT.as_type.as.Destroy.impl.Op.type.bdb = struct_value () [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.52e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ff5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.2c0) [symbolic] +// CHECK:STDOUT: %.83f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.53f [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.47d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.10b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.47d = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.69e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2c0) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.96f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.69e = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.94e: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.96f, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.2c0) [symbolic] // CHECK:STDOUT: %ptr.40d: type = ptr_type %C.13320f.2 [symbolic] // CHECK:STDOUT: %require_complete.0b0: = require_complete_type %ptr.40d [symbolic] // CHECK:STDOUT: %I.impl_witness.a00: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_tuple) [concrete] @@ -419,14 +419,14 @@ fn G() { // CHECK:STDOUT: %C.as.I.impl.F.specific_fn.9d8118.2: = specific_function %C.as.I.impl.F.1dded6.1, @C.as.I.impl.F.1(%empty_tuple) [concrete] // CHECK:STDOUT: %C.val.12f: %C.607 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.637: %type_where = facet_value %C.607, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.07b: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.637) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.30b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.637) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e24: %DestroyT.as_type.as.Destroy.impl.Op.type.30b = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.b4c: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.637) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.978: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.637) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.806: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.978 = struct_value () [concrete] // CHECK:STDOUT: %ptr.2ce: type = ptr_type %C.607 [concrete] // CHECK:STDOUT: %complete_type.e2c: = complete_type_witness %ptr.2ce [concrete] -// CHECK:STDOUT: %Destroy.facet.b25: %Destroy.type = facet_value %C.607, (%Destroy.impl_witness.07b) [concrete] -// CHECK:STDOUT: %.734: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b25 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.60f: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e24, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.637) [concrete] +// CHECK:STDOUT: %Destroy.facet.24b: %Destroy.type = facet_value %C.607, (%Destroy.impl_witness.b4c) [concrete] +// CHECK:STDOUT: %.910: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.24b [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.440: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.806, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.637) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -454,8 +454,8 @@ fn G() { // CHECK:STDOUT: %Main.import_ref.eb1c17.3: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Main.import_ref.eb1c17.4: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Main.F.162: @C.as.I.impl.%C.as.I.impl.F.type.1 (%C.as.I.impl.F.type.a1f290.1) = import_ref Main//b, F, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.1 (constants.%C.as.I.impl.F.e1c928.1)] -// CHECK:STDOUT: %Main.import_ref.19f: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.3ba) = import_ref Main//b, inst{{\d+}} [indirect], loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.736)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Main.import_ref.19f), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.a3f: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.47d) = import_ref Main//b, inst{{\d+}} [indirect], loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.10b)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Main.import_ref.a3f), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -537,11 +537,11 @@ fn G() { // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %C.as.I.impl.F.specific_fn(%.loc7_16.7) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.607, () [concrete = constants.%facet_value.637] // CHECK:STDOUT: %.loc7_16.8: %type_where = converted constants.%C.607, %facet_value [concrete = constants.%facet_value.637] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_16.5, constants.%DestroyT.as_type.as.Destroy.impl.Op.e24 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e24, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.637) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.60f] -// CHECK:STDOUT: %bound_method: = bound_method %.loc7_16.5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_16.5, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.806 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.806, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.637) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.440] +// CHECK:STDOUT: %bound_method: = bound_method %.loc7_16.5, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.2ce = addr_of %.loc7_16.5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -570,12 +570,12 @@ fn G() { // CHECK:STDOUT: %require_complete.1: = require_complete_type %C [symbolic = %require_complete.1 (constants.%require_complete.a35)] // CHECK:STDOUT: %C.val: @C.as.I.impl.F.2.%C (%C.13320f.2) = struct_value () [symbolic = %C.val (constants.%C.val.56a)] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [symbolic = %facet_value (constants.%facet_value.2c0)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.9f6)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.3a2)] -// CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.1 (constants.%.0fa)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.bdb)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @C.as.I.impl.F.2.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.bdb) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.ff5)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.52e)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.0e5)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %C, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.53f)] +// CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.1 (constants.%.83f)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.69e)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @C.as.I.impl.F.2.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.69e) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.96f)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.94e)] // CHECK:STDOUT: %ptr: type = ptr_type %C [symbolic = %ptr (constants.%ptr.40d)] // CHECK:STDOUT: %require_complete.2: = require_complete_type %ptr [symbolic = %require_complete.2 (constants.%require_complete.0b0)] // CHECK:STDOUT: @@ -645,12 +645,12 @@ fn G() { // CHECK:STDOUT: %require_complete.1 => constants.%complete_type.357 // CHECK:STDOUT: %C.val => constants.%C.val.12f // CHECK:STDOUT: %facet_value => constants.%facet_value.637 -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.07b -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.b25 -// CHECK:STDOUT: %.1 => constants.%.734 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.30b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.e24 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.60f +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.b4c +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.24b +// CHECK:STDOUT: %.1 => constants.%.910 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.978 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.806 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.440 // CHECK:STDOUT: %ptr => constants.%ptr.2ce // CHECK:STDOUT: %require_complete.2 => constants.%complete_type.e2c // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/interface_args.carbon b/toolchain/check/testdata/impl/interface_args.carbon index a3f3ceedf5c3b..4a8fbf614aba5 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.96f = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.3ac: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] // CHECK:STDOUT: %Self: %ImplicitAs.type.3ac = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.379: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.type: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert: %ImplicitAs.Convert.type = struct_value () [symbolic] @@ -153,20 +153,20 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %ImplicitAs.Convert.decl: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type) = fn_decl @ImplicitAs.Convert [symbolic = @ImplicitAs.%ImplicitAs.Convert (constants.%ImplicitAs.Convert)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.379) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.379) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.f6d) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.f6d) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %self.param: @ImplicitAs.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: %self.param: @ImplicitAs.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: %.loc4_20.2: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -184,11 +184,11 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3ac)] // CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// 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_14: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.379)] +// 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_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.f6d)] // CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> @ImplicitAs.Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> @ImplicitAs.Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -199,8 +199,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3ac // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.379 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.f6d // CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -216,8 +216,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.generic: %Action.type.29c = struct_value () [concrete] // CHECK:STDOUT: %Action.type.aff: type = facet_type <@Action, @Action(%T)> [symbolic] // CHECK:STDOUT: %Self.2f4: %Action.type.aff = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.2f4 [symbolic] -// CHECK:STDOUT: %pattern_type.b60: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.2f4 [symbolic] +// CHECK:STDOUT: %pattern_type.4a4: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Action.Op.type.036: type = fn_type @Action.Op, @Action(%T) [symbolic] // CHECK:STDOUT: %Action.Op.6ed: %Action.Op.type.036 = struct_value () [symbolic] // CHECK:STDOUT: %Action.assoc_type.32e: type = assoc_entity_type @Action, @Action(%T) [symbolic] @@ -301,17 +301,17 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @Action.%Action.type (%Action.type.aff) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.2f4)] // CHECK:STDOUT: %Action.Op.decl: @Action.%Action.Op.type (%Action.Op.type.036) = fn_decl @Action.Op [symbolic = @Action.%Action.Op (constants.%Action.Op.6ed)] { -// CHECK:STDOUT: %self.patt: @Action.Op.%pattern_type (%pattern_type.b60) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Action.Op.%pattern_type (%pattern_type.b60) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Action.Op.%pattern_type (%pattern_type.4a4) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Action.Op.%pattern_type (%pattern_type.4a4) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Action.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: %self.param: @Action.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: %.loc5_15.2: @Action.Op.%Action.type (%Action.type.aff) = specific_constant @Action.%Self.1, @Action(constants.%T) [symbolic = %Self (constants.%Self.2f4)] // CHECK:STDOUT: %Self.ref: @Action.Op.%Action.type (%Action.type.aff) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self.2f4)] -// 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: %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: } -// CHECK:STDOUT: %self: @Action.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Action.Op.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_22.1: @Action.%Action.assoc_type (%Action.assoc_type.32e) = assoc_entity element0, %Action.Op.decl [symbolic = %assoc0.loc5_22.2 (constants.%assoc0.268)] // CHECK:STDOUT: @@ -365,10 +365,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.aff)] // CHECK:STDOUT: %Self: @Action.Op.%Action.type (%Action.type.aff) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.2f4)] -// 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.b60)] +// 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.4a4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Action.Op.%Self.as_type.loc5_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Action.Op.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A.as.Action.impl.Op(%self.param: %A) { @@ -398,8 +398,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Action.type => constants.%Action.type.aff // CHECK:STDOUT: %Self => constants.%Self.2f4 -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b60 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4a4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { @@ -418,7 +418,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: %Action.type => constants.%Action.type.74f // CHECK:STDOUT: %Self => constants.%Action.facet -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%A +// CHECK:STDOUT: %Self.binding.as_type => constants.%A // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c10 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -438,8 +438,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %Action.Op.type.036: type = fn_type @Action.Op, @Action(%T) [symbolic] // CHECK:STDOUT: %Action.Op.6ed: %Action.Op.type.036 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.2f4 [symbolic] -// CHECK:STDOUT: %pattern_type.b60: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.2f4 [symbolic] +// CHECK:STDOUT: %pattern_type.4a4: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Action.assoc_type.32e: type = assoc_entity_type @Action, @Action(%T) [symbolic] // CHECK:STDOUT: %assoc0.f18741.1: %Action.assoc_type.32e = assoc_entity element0, imports.%Main.import_ref.0e3753.1 [symbolic] // CHECK:STDOUT: %Self.4b7: %Action.type.74f = bind_symbolic_name Self, 1 [symbolic] @@ -555,8 +555,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.aff)] // CHECK:STDOUT: %Self: @Action.Op.%Action.type (%Action.type.aff) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.2f4)] -// 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.b60)] +// 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.4a4)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -597,8 +597,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Action.type => constants.%Action.type.aff // CHECK:STDOUT: %Self => constants.%Self.2f4 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b60 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4a4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_action.impl.carbon @@ -616,8 +616,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %Action.Op.type.036: type = fn_type @Action.Op, @Action(%T) [symbolic] // CHECK:STDOUT: %Action.Op.6ed: %Action.Op.type.036 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.2f4 [symbolic] -// CHECK:STDOUT: %pattern_type.b60: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.2f4 [symbolic] +// CHECK:STDOUT: %pattern_type.4a4: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Action.assoc_type.32e: type = assoc_entity_type @Action, @Action(%T) [symbolic] // CHECK:STDOUT: %assoc0.326: %Action.assoc_type.32e = assoc_entity element0, imports.%Main.import_ref.1f6 [symbolic] // CHECK:STDOUT: %Self.4b7: %Action.type.74f = bind_symbolic_name Self, 1 [symbolic] @@ -742,8 +742,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.aff)] // CHECK:STDOUT: %Self: @Action.Op.%Action.type (%Action.type.aff) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.2f4)] -// 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.b60)] +// 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.4a4)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -779,8 +779,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Action.type => constants.%Action.type.aff // CHECK:STDOUT: %Self => constants.%Self.2f4 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b60 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4a4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%C) { @@ -811,8 +811,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.Make.737: %Factory.Make.type.598 = struct_value () [symbolic] // CHECK:STDOUT: %Factory.assoc_type.207: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] // CHECK:STDOUT: %assoc0.b3c: %Factory.assoc_type.207 = assoc_entity element0, @Factory.%Factory.Make.decl [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f7c [symbolic] -// CHECK:STDOUT: %pattern_type.e2d: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.f7c [symbolic] +// CHECK:STDOUT: %pattern_type.745: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Factory.Method.type.7ee: type = fn_type @Factory.Method, @Factory(%T) [symbolic] // CHECK:STDOUT: %Factory.Method.a71: %Factory.Method.type.7ee = struct_value () [symbolic] // CHECK:STDOUT: %assoc1.e30: %Factory.assoc_type.207 = assoc_entity element1, @Factory.%Factory.Method.decl [symbolic] @@ -898,20 +898,20 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc6_17.1: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = assoc_entity element0, %Factory.Make.decl [symbolic = %assoc0.loc6_17.2 (constants.%assoc0.b3c)] // CHECK:STDOUT: %Factory.Method.decl: @Factory.%Factory.Method.type (%Factory.Method.type.7ee) = fn_decl @Factory.Method [symbolic = @Factory.%Factory.Method (constants.%Factory.Method.a71)] { -// CHECK:STDOUT: %self.patt: @Factory.Method.%pattern_type.loc8_13 (%pattern_type.e2d) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Factory.Method.%pattern_type.loc8_13 (%pattern_type.e2d) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Factory.Method.%pattern_type.loc8_13 (%pattern_type.745) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Factory.Method.%pattern_type.loc8_13 (%pattern_type.745) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @Factory.Method.%pattern_type.loc8_27 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @Factory.Method.%pattern_type.loc8_27 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_19.2 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %self.param: @Factory.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: %self.param: @Factory.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: %.loc8_19.2: @Factory.Method.%Factory.type (%Factory.type.82b) = specific_constant @Factory.%Self.1, @Factory(constants.%T) [symbolic = %Self (constants.%Self.f7c)] // CHECK:STDOUT: %Self.ref: @Factory.Method.%Factory.type (%Factory.type.82b) = name_ref Self, %.loc8_19.2 [symbolic = %Self (constants.%Self.f7c)] -// 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: %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: } -// CHECK:STDOUT: %self: @Factory.Method.%Self.as_type.loc8_19.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Factory.Method.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @Factory.Method.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Factory.Method.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -983,11 +983,11 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.82b)] // CHECK:STDOUT: %Self: @Factory.Method.%Factory.type (%Factory.type.82b) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.f7c)] -// 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_13: type = pattern_type %Self.as_type.loc8_19.1 [symbolic = %pattern_type.loc8_13 (constants.%pattern_type.e2d)] +// 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_13: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc8_13 (constants.%pattern_type.745)] // CHECK:STDOUT: %pattern_type.loc8_27: type = pattern_type %T [symbolic = %pattern_type.loc8_27 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Factory.Method.%Self.as_type.loc8_19.1 (%Self.as_type)) -> @Factory.Method.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Factory.Method.%Self.binding.as_type (%Self.binding.as_type)) -> @Factory.Method.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A.as.Factory.impl.Make() -> %B; @@ -1007,8 +1007,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Factory.type => constants.%Factory.type.82b // CHECK:STDOUT: %Self => constants.%Self.f7c -// CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.e2d +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.745 // CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1036,7 +1036,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: %Factory.type => constants.%Factory.type.3cb // CHECK:STDOUT: %Self => constants.%Factory.facet -// CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%A +// CHECK:STDOUT: %Self.binding.as_type => constants.%A // CHECK:STDOUT: %pattern_type.loc8_13 => constants.%pattern_type.c10 // CHECK:STDOUT: %pattern_type.loc8_27 => constants.%pattern_type.049 // CHECK:STDOUT: } @@ -1061,8 +1061,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %assoc0.46d25f.1: %Factory.assoc_type.207 = assoc_entity element0, imports.%Main.import_ref.21018a.1 [symbolic] // CHECK:STDOUT: %Factory.Method.type.7ee: type = fn_type @Factory.Method, @Factory(%T) [symbolic] // CHECK:STDOUT: %Factory.Method.a71: %Factory.Method.type.7ee = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f7c [symbolic] -// CHECK:STDOUT: %pattern_type.e2d: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.f7c [symbolic] +// CHECK:STDOUT: %pattern_type.745: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %assoc1.16541d.1: %Factory.assoc_type.207 = assoc_entity element1, imports.%Main.import_ref.46fc3c.1 [symbolic] // CHECK:STDOUT: %Self.145: %Factory.type.3cb = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Factory.Make.type.c59: type = fn_type @Factory.Make, @Factory(%B) [concrete] @@ -1218,8 +1218,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.82b)] // CHECK:STDOUT: %Self: @Factory.Method.%Factory.type (%Factory.type.82b) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.f7c)] -// 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.e2d)] +// 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.745)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -1288,8 +1288,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Factory.type => constants.%Factory.type.82b // CHECK:STDOUT: %Self => constants.%Self.f7c -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e2d +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.745 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1313,8 +1313,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %assoc0.fe4: %Factory.assoc_type.207 = assoc_entity element0, imports.%Main.import_ref.1aa [symbolic] // CHECK:STDOUT: %Factory.Method.type.7ee: type = fn_type @Factory.Method, @Factory(%T) [symbolic] // CHECK:STDOUT: %Factory.Method.a71: %Factory.Method.type.7ee = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f7c [symbolic] -// CHECK:STDOUT: %pattern_type.e2d: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.f7c [symbolic] +// CHECK:STDOUT: %pattern_type.745: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %assoc1.ea6: %Factory.assoc_type.207 = assoc_entity element1, imports.%Main.import_ref.5be [symbolic] // CHECK:STDOUT: %Self.145: %Factory.type.3cb = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Factory.Make.type.c59: type = fn_type @Factory.Make, @Factory(%B) [concrete] @@ -1480,8 +1480,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.82b)] // CHECK:STDOUT: %Self: @Factory.Method.%Factory.type (%Factory.type.82b) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.f7c)] -// 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.e2d)] +// 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.745)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.7dc)] // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -1537,8 +1537,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Factory.type => constants.%Factory.type.82b // CHECK:STDOUT: %Self => constants.%Self.f7c -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e2d +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.745 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.7dc // CHECK:STDOUT: } // 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 447322a7ee597..9ce8d71dc5c25 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.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.II.type: type = fn_type @I.II [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.II: %I.II.type = struct_value () [concrete] @@ -60,8 +60,8 @@ fn G() { // CHECK:STDOUT: %assoc0.82e: %I.assoc_type = assoc_entity element0, @I.%I.II.decl [concrete] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %Self.bf6: %J.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] -// CHECK:STDOUT: %pattern_type.8ba: type = pattern_type %Self.as_type.4e7 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.09d: type = symbolic_binding_type Self, 0, %Self.bf6 [symbolic] +// CHECK:STDOUT: %pattern_type.a23: type = pattern_type %Self.binding.as_type.09d [symbolic] // CHECK:STDOUT: %J.JJ.type: type = fn_type @J.JJ [concrete] // CHECK:STDOUT: %J.JJ: %J.JJ.type = struct_value () [concrete] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] @@ -81,18 +81,18 @@ fn G() { // CHECK:STDOUT: %facet_type: type = facet_type <@I & @J> [concrete] // CHECK:STDOUT: %T: %facet_type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.add: type = pattern_type %facet_type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.94b: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.038: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.387: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.920: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet.6ef: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %I.facet.300: %I.type = facet_value %T.binding.as_type, (%I.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.10a: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %.4b9: type = fn_type_with_self_type %J.JJ.type, %J.facet.10a [symbolic] -// CHECK:STDOUT: %impl.elem0: %.4b9 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @J.JJ(%J.facet.10a) [symbolic] +// CHECK:STDOUT: %J.facet.861: %J.type = facet_value %T.binding.as_type, (%J.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %.c29: type = fn_type_with_self_type %J.JJ.type, %J.facet.861 [symbolic] +// CHECK:STDOUT: %impl.elem0: %.c29 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @J.JJ(%J.facet.861) [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] @@ -114,10 +114,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c6b: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c6b) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f2c: %DestroyT.as_type.as.Destroy.impl.Op.type.cb1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c6b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.fbd: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73c = struct_value () [concrete] // CHECK:STDOUT: %ptr.8e6: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f2c, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c6b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.fbd, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.c6b) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -146,8 +146,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.add = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.94b) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.94b) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.038) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.038) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_12.1: type = splice_block %.loc22_12.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -160,13 +160,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_6.2: %facet_type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.1 (constants.%T)] -// 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.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.ref.loc22: %facet_type = name_ref T, %T.loc22_6.2 [symbolic = %T.loc22_6.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %t: @F.%T.as_type.loc22_20.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } @@ -174,16 +174,16 @@ fn G() { // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] // CHECK:STDOUT: %I.II.decl: %I.II.type = fn_decl @I.II [concrete = constants.%I.II] { -// CHECK:STDOUT: %self.patt: @I.II.%pattern_type (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.II.%pattern_type (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.II.%pattern_type (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.II.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.II.%Self.as_type.loc16_15.1 (%Self.as_type.a67) = 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.a67)] { +// CHECK:STDOUT: %self.param: @I.II.%Self.binding.as_type (%Self.binding.as_type.1b7) = 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.1b7)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// 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.a67)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %.loc16_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.II.%Self.as_type.loc16_15.1 (%Self.as_type.a67) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.II.%Self.binding.as_type (%Self.binding.as_type.1b7) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.II.decl [concrete = constants.%assoc0.82e] // CHECK:STDOUT: @@ -198,16 +198,16 @@ fn G() { // CHECK:STDOUT: interface @J { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.bf6] // CHECK:STDOUT: %J.JJ.decl: %J.JJ.type = fn_decl @J.JJ [concrete = constants.%J.JJ] { -// CHECK:STDOUT: %self.patt: @J.JJ.%pattern_type (%pattern_type.8ba) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.JJ.%pattern_type (%pattern_type.8ba) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @J.JJ.%pattern_type (%pattern_type.a23) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @J.JJ.%pattern_type (%pattern_type.a23) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @J.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.4e7) = 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.4e7)] { +// CHECK:STDOUT: %self.param: @J.JJ.%Self.binding.as_type (%Self.binding.as_type.09d) = 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.09d)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.bf6)] -// 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.4e7)] -// 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.4e7)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] +// CHECK:STDOUT: %.loc19_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.4e7) = bind_name self, %self.param +// CHECK:STDOUT: %self: @J.JJ.%Self.binding.as_type (%Self.binding.as_type.09d) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %J.JJ.decl [concrete = constants.%assoc0.78c] // CHECK:STDOUT: @@ -274,64 +274,64 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.II(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type.loc16_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_15.1 [symbolic = %pattern_type (constants.%pattern_type.d22)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.3f7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.II.%Self.as_type.loc16_15.1 (%Self.as_type.a67)); +// CHECK:STDOUT: fn(%self.param: @I.II.%Self.binding.as_type (%Self.binding.as_type.1b7)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.JJ(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.bf6)] -// CHECK:STDOUT: %Self.as_type.loc19_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.4e7)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_15.1 [symbolic = %pattern_type (constants.%pattern_type.8ba)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.a23)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.4e7)); +// CHECK:STDOUT: fn(%self.param: @J.JJ.%Self.binding.as_type (%Self.binding.as_type.09d)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc22_6.2: %facet_type) { // CHECK:STDOUT: %T.loc22_6.1: %facet_type = bind_symbolic_name T, 0 [symbolic = %T.loc22_6.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc22_20.1: type = facet_access_type %T.loc22_6.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.94b)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc22_6.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.038)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_20.1 [symbolic = %require_complete (constants.%require_complete.387)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.920)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc22_6.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// 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.6ef)] +// 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.300)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc22_6.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness)] -// 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.10a)] -// CHECK:STDOUT: %.loc26_69: type = fn_type_with_self_type constants.%J.JJ.type, %J.facet.loc26_33.2 [symbolic = %.loc26_69 (constants.%.4b9)] -// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.4b9) = 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.binding.as_type, (%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.861)] +// CHECK:STDOUT: %.loc26_69: type = fn_type_with_self_type constants.%J.JJ.type, %J.facet.loc26_33.2 [symbolic = %.loc26_69 (constants.%.c29)] +// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.c29) = 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.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.as_type.loc22_20.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc22_20.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t // CHECK:STDOUT: %T.ref.loc26: %facet_type = name_ref T, %T.loc22_6.2 [symbolic = %T.loc22_6.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.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.6ef)] -// CHECK:STDOUT: %.loc26_18: %I.type = converted %T.ref.loc26, %I.facet.loc26_18.1 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.6ef)] -// 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: %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.300)] +// CHECK:STDOUT: %.loc26_18: %I.type = converted %T.ref.loc26, %I.facet.loc26_18.1 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.300)] +// 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: %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.10a)] -// CHECK:STDOUT: %.loc26_33: %J.type = converted %.loc26_24, %J.facet.loc26_33.1 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.10a)] -// 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: %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.861)] +// CHECK:STDOUT: %.loc26_33: %J.type = converted %.loc26_24, %J.facet.loc26_33.1 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.861)] +// 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: %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.6ef)] -// CHECK:STDOUT: %.loc26_48: %I.type = converted %.loc26_39, %I.facet.loc26_48 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.6ef)] -// 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: %I.facet.loc26_48: %I.type = facet_value %.loc26_39, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.300)] +// CHECK:STDOUT: %.loc26_48: %I.type = converted %.loc26_39, %I.facet.loc26_48 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.300)] +// 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: %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.10a)] -// CHECK:STDOUT: %.loc26_63: %J.type = converted %.loc26_54, %J.facet.loc26_63 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.10a)] -// 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: %J.facet.loc26_63: %J.type = facet_value %.loc26_54, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.861)] +// CHECK:STDOUT: %.loc26_63: %J.type = converted %.loc26_54, %J.facet.loc26_63 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.861)] +// 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: %JJ.ref: %J.assoc_type = name_ref JJ, @J.%assoc0 [concrete = constants.%assoc0.78c] -// CHECK:STDOUT: %impl.elem0.loc26_69.1: @F.%.loc26_69 (%.4b9) = 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 (%.c29) = 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.JJ(constants.%J.facet.10a) [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.JJ(constants.%J.facet.861) [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: %.loc26_73: init %empty_tuple.type = call %bound_method.loc26_73(%t.ref) // CHECK:STDOUT: return @@ -392,18 +392,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn(%.loc46_11.2) // CHECK:STDOUT: %facet_value.loc46_9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.c6b] // CHECK:STDOUT: %.loc46_9.5: %type_where = converted constants.%C, %facet_value.loc46_9 [concrete = constants.%facet_value.c6b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc46: = bound_method %.loc46_9.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc46: = bound_method %.loc46_9.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc46: = bound_method %.loc46_9.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fbd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fbd, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc46: = bound_method %.loc46_9.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc46: %ptr.8e6 = addr_of %.loc46_9.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc46: init %empty_tuple.type = call %bound_method.loc46(%addr.loc46) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc46: init %empty_tuple.type = call %bound_method.loc46(%addr.loc46) // CHECK:STDOUT: %facet_value.loc40: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.c6b] // CHECK:STDOUT: %.loc40_6.5: %type_where = converted constants.%C, %facet_value.loc40 [concrete = constants.%facet_value.c6b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc40: = bound_method %.loc40_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f2c, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc40_6: = bound_method %.loc40_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc40: = bound_method %.loc40_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fbd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fbd, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c6b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc40_6: = bound_method %.loc40_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc40: %ptr.8e6 = addr_of %.loc40_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc40: init %empty_tuple.type = call %bound_method.loc40_6(%addr.loc40) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc40: init %empty_tuple.type = call %bound_method.loc40_6(%addr.loc40) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -419,43 +419,43 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.II(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%Self.as_type.a67 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.JJ(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 -// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%Self.as_type.4e7 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8ba +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.09d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a23 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc22_6.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc22_20.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94b +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.038 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.JJ(constants.%J.facet.10a) { -// CHECK:STDOUT: %Self => constants.%J.facet.10a -// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.94b +// CHECK:STDOUT: specific @J.JJ(constants.%J.facet.861) { +// CHECK:STDOUT: %Self => constants.%J.facet.861 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.038 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.II(constants.%I.facet.0a4) { // CHECK:STDOUT: %Self => constants.%I.facet.0a4 -// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.JJ(constants.%J.facet.5ad) { // CHECK:STDOUT: %Self => constants.%J.facet.5ad -// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%facet_value.d36) { // CHECK:STDOUT: %T.loc22_6.1 => constants.%facet_value.d36 -// CHECK:STDOUT: %T.as_type.loc22_20.1 => constants.%C +// CHECK:STDOUT: %T.binding.as_type => 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 dca5930618c49..e4916344cb914 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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.85b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.52f: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] @@ -203,16 +203,16 @@ fn G(x: A) { // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %HasF.F.decl: %HasF.F.type = fn_decl @HasF.F [concrete = constants.%HasF.F] { -// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.85b) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.85b) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.52f) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.52f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.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.param: @HasF.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.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @HasF.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -248,10 +248,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.85b)] +// 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.52f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @T.as.HasF.impl.F(@T.as.HasF.impl.%T.loc8_14.2: type) { @@ -282,8 +282,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.85b +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) { @@ -302,7 +302,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%HasF.facet.804) { // CHECK:STDOUT: %Self => constants.%HasF.facet.804 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T +// CHECK:STDOUT: %Self.binding.as_type => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -328,8 +328,8 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self.cb9: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.45c: type = facet_access_type %Self.cb9 [symbolic] -// CHECK:STDOUT: %pattern_type.85b: type = pattern_type %Self.as_type.45c [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.24b: type = symbolic_binding_type Self, 0, %Self.cb9 [symbolic] +// CHECK:STDOUT: %pattern_type.52f: type = pattern_type %Self.binding.as_type.24b [symbolic] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] @@ -428,23 +428,23 @@ fn G(x: A) { // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.cb9] // CHECK:STDOUT: %HasF.F.decl: %HasF.F.type = fn_decl @HasF.F [concrete = constants.%HasF.F] { -// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.85b) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.85b) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @HasF.F.%pattern_type (%pattern_type.85b) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @HasF.F.%pattern_type (%pattern_type.85b) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.52f) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.52f) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @HasF.F.%pattern_type (%pattern_type.52f) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @HasF.F.%pattern_type (%pattern_type.52f) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_25: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.cb9)] -// 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.45c)] -// CHECK:STDOUT: %.loc5_25: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.45c)] -// CHECK:STDOUT: %self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type.45c) = 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.45c)] { +// 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.24b)] +// CHECK:STDOUT: %.loc5_25: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.24b)] +// CHECK:STDOUT: %self.param: @HasF.F.%Self.binding.as_type (%Self.binding.as_type.24b) = 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.24b)] { // CHECK:STDOUT: %Self.ref.loc5_14: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.cb9)] -// 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.45c)] -// 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.45c)] +// 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.24b)] +// 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.24b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type.45c) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type.45c) = out_param call_param1 -// CHECK:STDOUT: %return: ref @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type.45c) = return_slot %return.param +// CHECK:STDOUT: %self: @HasF.F.%Self.binding.as_type (%Self.binding.as_type.24b) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @HasF.F.%Self.binding.as_type (%Self.binding.as_type.24b) = out_param call_param1 +// CHECK:STDOUT: %return: ref @HasF.F.%Self.binding.as_type (%Self.binding.as_type.24b) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.F.decl [concrete = constants.%assoc0.97a] // CHECK:STDOUT: @@ -488,10 +488,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.cb9)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.45c)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.85b)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.24b)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.52f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type.45c)) -> @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type.45c); +// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.binding.as_type (%Self.binding.as_type.24b)) -> @HasF.F.%Self.binding.as_type (%Self.binding.as_type.24b); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ptr.as.HasF.impl.F(@ptr.as.HasF.impl.%T.loc8_14.2: type) { @@ -534,8 +534,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self.cb9) { // CHECK:STDOUT: %Self => constants.%Self.cb9 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.45c -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.85b +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.24b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ptr.as.HasF.impl(constants.%T.8b3) { @@ -556,7 +556,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%HasF.facet.040) { // CHECK:STDOUT: %Self => constants.%HasF.facet.040 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%ptr.79f +// CHECK:STDOUT: %Self.binding.as_type => constants.%ptr.79f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.afe // CHECK:STDOUT: } // CHECK:STDOUT: @@ -589,8 +589,8 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.85b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.52f: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] @@ -675,16 +675,16 @@ fn G(x: A) { // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %HasF.F.decl: %HasF.F.type = fn_decl @HasF.F [concrete = constants.%HasF.F] { -// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.85b) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.85b) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.52f) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.52f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.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.param: @HasF.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.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @HasF.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -735,10 +735,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.85b)] +// 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.52f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.HasF.impl.F(@C.as.HasF.impl.%T.loc10_14.2: type) { @@ -770,8 +770,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.85b +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -798,7 +798,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%HasF.facet.469) { // CHECK:STDOUT: %Self => constants.%HasF.facet.469 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C.f2e +// CHECK:STDOUT: %Self.binding.as_type => constants.%C.f2e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e5e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -839,8 +839,8 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.generic: %HasF.type.fe3 = struct_value () [concrete] // CHECK:STDOUT: %HasF.type.9f4: type = facet_type <@HasF, @HasF(%T)> [symbolic] // CHECK:STDOUT: %Self.0b6: %HasF.type.9f4 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.0b6 [symbolic] -// CHECK:STDOUT: %pattern_type.f60: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.0b6 [symbolic] +// CHECK:STDOUT: %pattern_type.583: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %HasF.F.type.46c: type = fn_type @HasF.F, @HasF(%T) [symbolic] // CHECK:STDOUT: %HasF.F.823: %HasF.F.type.46c = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type.dd8: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] @@ -929,17 +929,17 @@ fn G(x: A) { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.9f4) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.0b6)] // CHECK:STDOUT: %HasF.F.decl: @HasF.%HasF.F.type (%HasF.F.type.46c) = fn_decl @HasF.F [symbolic = @HasF.%HasF.F (constants.%HasF.F.823)] { -// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.f60) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.f60) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.583) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.583) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.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: %self.param: @HasF.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: %.loc5_14.2: @HasF.F.%HasF.type (%HasF.type.9f4) = specific_constant @HasF.%Self.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.0b6)] // CHECK:STDOUT: %Self.ref: @HasF.F.%HasF.type (%HasF.type.9f4) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.0b6)] -// 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: %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: } -// CHECK:STDOUT: %self: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @HasF.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.%HasF.assoc_type (%HasF.assoc_type.dd8) = assoc_entity element0, %HasF.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.d31)] // CHECK:STDOUT: @@ -980,10 +980,10 @@ fn G(x: A) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.9f4)] // CHECK:STDOUT: %Self: @HasF.F.%HasF.type (%HasF.type.9f4) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.0b6)] -// 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.f60)] +// 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.583)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.binding.as_type (%Self.binding.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_14.2: type) { @@ -1028,8 +1028,8 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.9f4 // CHECK:STDOUT: %Self => constants.%Self.0b6 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f60 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.583 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl(constants.%T) { @@ -1049,7 +1049,7 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.9f4 // CHECK:STDOUT: %Self => constants.%HasF.facet.e17 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_struct_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a96 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1085,8 +1085,8 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.85b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.52f: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] @@ -1151,16 +1151,16 @@ fn G(x: A) { // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %HasF.F.decl: %HasF.F.type = fn_decl @HasF.F [concrete = constants.%HasF.F] { -// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.85b) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.85b) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.52f) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.52f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.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.param: @HasF.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.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @HasF.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1197,10 +1197,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.85b)] +// 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.52f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @T.as.HasF.impl.F(@T.as.HasF.impl.%T.loc12_14.2: type, @T.as.HasF.impl.%U.loc12_24.2: type) { @@ -1226,8 +1226,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.85b +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T, constants.%U) { @@ -1256,8 +1256,8 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.generic: %HasF.type.fe3 = struct_value () [concrete] // CHECK:STDOUT: %HasF.type.9f4: type = facet_type <@HasF, @HasF(%T)> [symbolic] // CHECK:STDOUT: %Self.0b6: %HasF.type.9f4 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.0b6 [symbolic] -// CHECK:STDOUT: %pattern_type.f60: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.0b6 [symbolic] +// CHECK:STDOUT: %pattern_type.583: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %HasF.F.type.46c: type = fn_type @HasF.F, @HasF(%T) [symbolic] // CHECK:STDOUT: %HasF.F.823: %HasF.F.type.46c = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type.dd8: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] @@ -1344,17 +1344,17 @@ fn G(x: A) { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @HasF.%HasF.type (%HasF.type.9f4) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self.0b6)] // CHECK:STDOUT: %HasF.F.decl: @HasF.%HasF.F.type (%HasF.F.type.46c) = fn_decl @HasF.F [symbolic = @HasF.%HasF.F (constants.%HasF.F.823)] { -// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.f60) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.f60) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.583) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.583) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.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: %self.param: @HasF.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: %.loc5_14.2: @HasF.F.%HasF.type (%HasF.type.9f4) = specific_constant @HasF.%Self.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.0b6)] // CHECK:STDOUT: %Self.ref: @HasF.F.%HasF.type (%HasF.type.9f4) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.0b6)] -// 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: %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: } -// CHECK:STDOUT: %self: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @HasF.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.%HasF.assoc_type (%HasF.assoc_type.dd8) = assoc_entity element0, %HasF.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.d31)] // CHECK:STDOUT: @@ -1411,10 +1411,10 @@ fn G(x: A) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.9f4)] // CHECK:STDOUT: %Self: @HasF.F.%HasF.type (%HasF.type.9f4) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.0b6)] -// 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.f60)] +// 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.583)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @T.as.HasF.impl.F(@T.as.HasF.impl.%T.loc8_14.2: type) { @@ -1457,8 +1457,8 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.9f4 // CHECK:STDOUT: %Self => constants.%Self.0b6 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f60 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.583 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) { @@ -1481,7 +1481,7 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.9f4 // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T +// CHECK:STDOUT: %Self.binding.as_type => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/import.carbon b/toolchain/check/testdata/impl/lookup/import.carbon index d4df916cdd954..388f4f9bb3190 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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.85b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.52f: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] @@ -271,16 +271,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: interface @HasF { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %HasF.F.decl: %HasF.F.type = fn_decl @HasF.F [concrete = constants.%HasF.F] { -// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.85b) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.85b) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @HasF.F.%pattern_type (%pattern_type.52f) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.F.%pattern_type (%pattern_type.52f) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.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.param: @HasF.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.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @HasF.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -315,10 +315,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.85b)] +// 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.52f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.HasF.impl.F(%self.param: %C) { @@ -328,13 +328,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.85b +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.52f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%HasF.facet) { // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -343,8 +343,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [concrete] // CHECK:STDOUT: %Self.4d5: %HasG.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.5b9: type = facet_access_type %Self.4d5 [symbolic] -// CHECK:STDOUT: %pattern_type.511: type = pattern_type %Self.as_type.5b9 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.b8b: type = symbolic_binding_type Self, 0, %Self.4d5 [symbolic] +// CHECK:STDOUT: %pattern_type.1df: type = pattern_type %Self.binding.as_type.b8b [symbolic] // CHECK:STDOUT: %HasG.G.type: type = fn_type @HasG.G [concrete] // CHECK:STDOUT: %HasG.G: %HasG.G.type = struct_value () [concrete] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] @@ -362,8 +362,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.d86: %HasF.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type.a8f: type = facet_access_type %Self.d86 [symbolic] -// CHECK:STDOUT: %pattern_type.fcd: type = pattern_type %Self.as_type.a8f [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.ee6: type = symbolic_binding_type Self, 0, %Self.d86 [symbolic] +// CHECK:STDOUT: %pattern_type.839: type = pattern_type %Self.binding.as_type.ee6 [symbolic] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness file.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.510: type = pattern_type %D [concrete] // CHECK:STDOUT: %D.as.HasF.impl.F.type: type = fn_type @D.as.HasF.impl.F [concrete] @@ -431,16 +431,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: interface @HasG { // CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.4d5] // CHECK:STDOUT: %HasG.G.decl: %HasG.G.type = fn_decl @HasG.G [concrete = constants.%HasG.G] { -// CHECK:STDOUT: %self.patt: @HasG.G.%pattern_type (%pattern_type.511) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @HasG.G.%pattern_type (%pattern_type.511) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @HasG.G.%pattern_type (%pattern_type.1df) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @HasG.G.%pattern_type (%pattern_type.1df) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasG.G.%Self.as_type.loc7_14.1 (%Self.as_type.5b9) = 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.5b9)] { +// CHECK:STDOUT: %self.param: @HasG.G.%Self.binding.as_type (%Self.binding.as_type.b8b) = 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.b8b)] { // CHECK:STDOUT: %Self.ref: %HasG.type = name_ref Self, @HasG.%Self [symbolic = %Self (constants.%Self.4d5)] -// 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.5b9)] -// 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.5b9)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b8b)] +// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b8b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasG.G.%Self.as_type.loc7_14.1 (%Self.as_type.5b9) = bind_name self, %self.param +// CHECK:STDOUT: %self: @HasG.G.%Self.binding.as_type (%Self.binding.as_type.b8b) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, %HasG.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -519,10 +519,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasG.G(@HasG.%Self: %HasG.type) { // CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.4d5)] -// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.5b9)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.1 [symbolic = %pattern_type (constants.%pattern_type.511)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b8b)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.1df)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasG.G.%Self.as_type.loc7_14.1 (%Self.as_type.5b9)); +// CHECK:STDOUT: fn(%self.param: @HasG.G.%Self.binding.as_type (%Self.binding.as_type.b8b)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.HasG.impl.G(%self.param: %C) { @@ -532,8 +532,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(imports.%PackageA.import_ref.0b6: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.d86)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.a8f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.fcd)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ee6)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.839)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -550,31 +550,31 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.G(constants.%Self.4d5) { // CHECK:STDOUT: %Self => constants.%Self.4d5 -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type.5b9 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.511 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.b8b +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1df // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.G(constants.%HasG.facet.a10) { // CHECK:STDOUT: %Self => constants.%HasG.facet.a10 -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8e5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self.d86) { // CHECK:STDOUT: %Self => constants.%Self.d86 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a8f -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fcd +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ee6 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.839 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%HasF.facet) { // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.as_type => constants.%D +// CHECK:STDOUT: %Self.binding.as_type => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.510 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.G(constants.%HasG.facet.6ec) { // CHECK:STDOUT: %Self => constants.%HasG.facet.6ec -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%D +// CHECK:STDOUT: %Self.binding.as_type => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.510 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -594,8 +594,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.ab2 [concrete] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.fcd: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.839: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness imports.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%HasF.impl_witness) [concrete] // CHECK:STDOUT: %.3f2: type = fn_type_with_self_type %HasF.F.type, %HasF.facet [concrete] @@ -683,8 +683,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(imports.%PackageA.import_ref.0b6: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.fcd)] +// 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.839)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -693,8 +693,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fcd +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.839 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_df.carbon @@ -713,8 +713,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.ab2 [concrete] // CHECK:STDOUT: %HasF.F.type: type = fn_type @HasF.F [concrete] // CHECK:STDOUT: %HasF.F: %HasF.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.fcd: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.839: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness imports.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%HasF.impl_witness) [concrete] @@ -825,8 +825,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.F(imports.%PackageA.import_ref.0b6: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.fcd)] +// 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.839)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -835,8 +835,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fcd +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.839 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_cg.carbon @@ -855,8 +855,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.70a [concrete] // CHECK:STDOUT: %HasG.G.type: type = fn_type @HasG.G [concrete] // CHECK:STDOUT: %HasG.G: %HasG.G.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.bf4: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.927: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %HasG.impl_witness: = impl_witness imports.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%HasG.impl_witness) [concrete] @@ -967,8 +967,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasG.G(imports.%PackageB.import_ref.4b1: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.bf4)] +// 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.927)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -977,8 +977,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bf4 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.927 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- use_dg.carbon @@ -997,8 +997,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.70a [concrete] // CHECK:STDOUT: %HasG.G.type: type = fn_type @HasG.G [concrete] // CHECK:STDOUT: %HasG.G: %HasG.G.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.bf4: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.927: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %HasG.impl_witness: = impl_witness imports.%HasG.impl_witness_table [concrete] // CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %D, (%HasG.impl_witness) [concrete] @@ -1104,8 +1104,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasG.G(imports.%PackageB.import_ref.4b1: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.bf4)] +// 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.927)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1114,8 +1114,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bf4 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.927 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- associated_interface.carbon @@ -1123,8 +1123,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.c8d: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.5d1: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Z.H.type: type = fn_type @Z.H [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Z.H: %Z.H.type = struct_value () [concrete] @@ -1163,16 +1163,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: interface @Z { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %Z.H.decl: %Z.H.type = fn_decl @Z.H [concrete = constants.%Z.H] { -// CHECK:STDOUT: %self.patt: @Z.H.%pattern_type (%pattern_type.c8d) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Z.H.%pattern_type (%pattern_type.c8d) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Z.H.%pattern_type (%pattern_type.5d1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Z.H.%pattern_type (%pattern_type.5d1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Z.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.param: @Z.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.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @Z.H.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Z.H.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.H.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1199,10 +1199,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.H(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.c8d)] +// 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.5d1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Z.H.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Z.H.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.Z.impl.H(%self.param: %empty_tuple.type) { @@ -1212,13 +1212,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.H(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8d +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5d1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.H(constants.%Z.facet) { // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1234,8 +1234,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, imports.%PackageAssociatedInterface.import_ref.250 [concrete] // CHECK:STDOUT: %Z.H.type: type = fn_type @Z.H [concrete] // CHECK:STDOUT: %Z.H: %Z.H.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.6b0: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.955: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Z.impl_witness: = impl_witness imports.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%Z.impl_witness) [concrete] // CHECK:STDOUT: %.a1b: type = fn_type_with_self_type %Z.H.type, %Z.facet [concrete] @@ -1305,8 +1305,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.H(imports.%PackageAssociatedInterface.import_ref.863: %Z.type) [from "associated_interface.carbon"] { // CHECK:STDOUT: %Self: %Z.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.6b0)] +// 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.955)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1315,8 +1315,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.H(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6b0 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.955 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_param.carbon @@ -1335,13 +1335,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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.5da: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f10: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Y.K.type: type = fn_type @Y.K [concrete] // CHECK:STDOUT: %Y.K: %Y.K.type = struct_value () [concrete] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.%Y.K.decl [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1376,16 +1376,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: interface @Y { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %Y.K.decl: %Y.K.type = fn_decl @Y.K [concrete = constants.%Y.K] { -// CHECK:STDOUT: %self.patt: @Y.K.%pattern_type (%pattern_type.5da) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @Y.K.%pattern_type (%pattern_type.5da) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @Y.K.%pattern_type (%pattern_type.f10) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @Y.K.%pattern_type (%pattern_type.f10) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Y.K.%Self.as_type.loc7_14.1 (%Self.as_type) = 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)] { +// CHECK:STDOUT: %self.param: @Y.K.%Self.binding.as_type (%Self.binding.as_type) = 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)] { // CHECK:STDOUT: %Self.ref: %Y.type = name_ref Self, @Y.%Self [symbolic = %Self (constants.%Self)] -// 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)] -// 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)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Y.K.%Self.as_type.loc7_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Y.K.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, %Y.K.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1413,13 +1413,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.K(@Y.%Self: %Y.type) { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.1 [symbolic = %pattern_type (constants.%pattern_type.5da)] +// 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.f10)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc7_14.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Y.K.%Self.as_type.loc7_14.1 (%Self.as_type)) { +// CHECK:STDOUT: fn(%self.param: @Y.K.%Self.binding.as_type (%Self.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1433,8 +1433,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.K(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5da +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_generic_interface.carbon @@ -1462,9 +1462,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.2f4: %Y.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Y.K.type: type = fn_type @Y.K [concrete] // CHECK:STDOUT: %Y.K: %Y.K.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type.84b: type = facet_access_type %Self.2f4 [symbolic] -// CHECK:STDOUT: %pattern_type.e57: type = pattern_type %Self.as_type.84b [symbolic] -// CHECK:STDOUT: %require_complete.040: = require_complete_type %Self.as_type.84b [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.3a0: type = symbolic_binding_type Self, 0, %Self.2f4 [symbolic] +// CHECK:STDOUT: %pattern_type.c80: type = pattern_type %Self.binding.as_type.3a0 [symbolic] +// CHECK:STDOUT: %require_complete.3f1: = require_complete_type %Self.binding.as_type.3a0 [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness file.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.004: type = pattern_type %AnyParam.241 [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] @@ -1479,10 +1479,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.241, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.925: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.290: %DestroyT.as_type.as.Destroy.impl.Op.type.925 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.03c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.0bf: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.03c = struct_value () [concrete] // CHECK:STDOUT: %ptr.301: type = ptr_type %AnyParam.241 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.290, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.0bf, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1593,11 +1593,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.K(imports.%PackageHasParam.import_ref.28c: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2f4)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.84b)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e57)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.3a0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.c80)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.040)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.3f1)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1635,11 +1635,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc14(%.loc14) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.241, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%AnyParam.241, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.290 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.290, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0bf +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0bf, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.301 = addr_of %obj.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1663,13 +1663,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.K(constants.%Self.2f4) { // CHECK:STDOUT: %Self => constants.%Self.2f4 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.84b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e57 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.3a0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.K(constants.%Y.facet) { // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.241 +// CHECK:STDOUT: %Self.binding.as_type => constants.%AnyParam.241 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.004 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1701,9 +1701,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] // CHECK:STDOUT: %Y.K.type: type = fn_type @Y.K [concrete] // CHECK:STDOUT: %Y.K: %Y.K.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type.84b: type = facet_access_type %Self.2f4 [symbolic] -// CHECK:STDOUT: %pattern_type.e57: type = pattern_type %Self.as_type.84b [symbolic] -// CHECK:STDOUT: %require_complete.040: = require_complete_type %Self.as_type.84b [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.3a0: type = symbolic_binding_type Self, 0, %Self.2f4 [symbolic] +// CHECK:STDOUT: %pattern_type.c80: type = pattern_type %Self.binding.as_type.3a0 [symbolic] +// CHECK:STDOUT: %require_complete.3f1: = require_complete_type %Self.binding.as_type.3a0 [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.861, (%Y.impl_witness) [concrete] // CHECK:STDOUT: %.ed5: type = fn_type_with_self_type %Y.K.type, %Y.facet [concrete] @@ -1712,10 +1712,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.861, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0b7: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.596: %DestroyT.as_type.as.Destroy.impl.Op.type.0b7 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cd2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.2fd: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cd2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.1ef: type = ptr_type %AnyParam.861 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.596, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.2fd, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1838,21 +1838,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc10(%.loc10) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.861, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%AnyParam.861, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.596 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.596, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.2fd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.2fd, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.1ef = addr_of %obj.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.K(imports.%PackageHasParam.import_ref.28c: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2f4)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.84b)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e57)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.3a0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.c80)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.040)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.3f1)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1879,8 +1879,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.K(constants.%Self.2f4) { // CHECK:STDOUT: %Self => constants.%Self.2f4 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.84b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e57 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.3a0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_generic_class.carbon @@ -1907,9 +1907,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.2f4: %Y.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Y.K.type: type = fn_type @Y.K [concrete] // CHECK:STDOUT: %Y.K: %Y.K.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type.84b: type = facet_access_type %Self.2f4 [symbolic] -// CHECK:STDOUT: %pattern_type.e57: type = pattern_type %Self.as_type.84b [symbolic] -// CHECK:STDOUT: %require_complete.040: = require_complete_type %Self.as_type.84b [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.3a0: type = symbolic_binding_type Self, 0, %Self.2f4 [symbolic] +// CHECK:STDOUT: %pattern_type.c80: type = pattern_type %Self.binding.as_type.3a0 [symbolic] +// CHECK:STDOUT: %require_complete.3f1: = require_complete_type %Self.binding.as_type.3a0 [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness file.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.64f: type = pattern_type %AnyParam.0dd [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] @@ -1924,10 +1924,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.0dd, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.846: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bde: %DestroyT.as_type.as.Destroy.impl.Op.type.846 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.0bd: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.c10: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.0bd = struct_value () [concrete] // CHECK:STDOUT: %ptr.d96: type = ptr_type %AnyParam.0dd [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bde, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.c10, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2036,11 +2036,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.K(imports.%PackageHasParam.import_ref.28c: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2f4)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.84b)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e57)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.3a0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.c80)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.040)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.3f1)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -2078,11 +2078,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc14(%.loc14) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.0dd, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%AnyParam.0dd, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bde -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bde, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c10 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c10, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc13: = bound_method %obj.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d96 = addr_of %obj.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2106,13 +2106,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.K(constants.%Self.2f4) { // CHECK:STDOUT: %Self => constants.%Self.2f4 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.84b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e57 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.3a0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.K(constants.%Y.facet) { // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.0dd +// CHECK:STDOUT: %Self.binding.as_type => constants.%AnyParam.0dd // CHECK:STDOUT: %pattern_type => constants.%pattern_type.64f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2142,9 +2142,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0.494: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] // CHECK:STDOUT: %Y.K.type: type = fn_type @Y.K [concrete] // CHECK:STDOUT: %Y.K: %Y.K.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type.84b: type = facet_access_type %Self.2f4 [symbolic] -// CHECK:STDOUT: %pattern_type.e57: type = pattern_type %Self.as_type.84b [symbolic] -// CHECK:STDOUT: %require_complete.040: = require_complete_type %Self.as_type.84b [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.3a0: type = symbolic_binding_type Self, 0, %Self.2f4 [symbolic] +// CHECK:STDOUT: %pattern_type.c80: type = pattern_type %Self.binding.as_type.3a0 [symbolic] +// CHECK:STDOUT: %require_complete.3f1: = require_complete_type %Self.binding.as_type.3a0 [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.d71, (%Y.impl_witness) [concrete] // CHECK:STDOUT: %.79f: type = fn_type_with_self_type %Y.K.type, %Y.facet [concrete] @@ -2153,10 +2153,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %AnyParam.d71, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1a0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1aa: %DestroyT.as_type.as.Destroy.impl.Op.type.1a0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.883: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ec3: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.883 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8ee: type = ptr_type %AnyParam.d71 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.1aa, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.ec3, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2279,21 +2279,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %AnyParam.as.Y.impl.K.call: init %empty_tuple.type = call %bound_method.loc9(%.loc9) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%AnyParam.d71, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%AnyParam.d71, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1aa -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.1aa, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %obj.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ec3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ec3, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %obj.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8ee = addr_of %obj.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.K(imports.%PackageHasParam.import_ref.28c: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.2f4)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.84b)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e57)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.3a0)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.c80)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete.040)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.3f1)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -2320,8 +2320,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.K(constants.%Self.2f4) { // CHECK:STDOUT: %Self => constants.%Self.2f4 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.84b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e57 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.3a0 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_extra_interfaces.carbon @@ -2354,8 +2354,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.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -2493,16 +2493,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] // CHECK:STDOUT: %I.F.decl: %I.F.type = fn_decl @I.F [concrete = constants.%I.F] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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.param: @I.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.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc14_26.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -2543,10 +2543,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// 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.d22)] +// 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.3f7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc14_26.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C.763) { @@ -2560,8 +2560,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.type.f7c) { @@ -2572,7 +2572,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%C.763 +// CHECK:STDOUT: %Self.binding.as_type => constants.%C.763 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.fc9 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2594,8 +2594,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%HasExtraInterfaces.import_ref.d54 [concrete] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.caa [symbolic] -// CHECK:STDOUT: %pattern_type.95f: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.caa [symbolic] +// CHECK:STDOUT: %pattern_type.579: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Extra8.type: type = facet_type <@Extra8> [concrete] // CHECK:STDOUT: %Extra7.type: type = facet_type <@Extra7> [concrete] // CHECK:STDOUT: %Extra6.type: type = facet_type <@Extra6> [concrete] @@ -2747,8 +2747,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(imports.%HasExtraInterfaces.import_ref.59a: %I.type) [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.caa)] -// 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.95f)] +// 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.579)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -2765,8 +2765,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self.caa) { // CHECK:STDOUT: %Self => constants.%Self.caa -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.95f +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.579 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.type) { diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index b0ea07894b45f..8abbe8e228087 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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.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] @@ -96,20 +96,20 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %I.F.decl: %I.F.type = fn_decl @I.F [concrete = constants.%I.F] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %self.param: @I.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.param: @I.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.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc18_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -161,10 +161,10 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.d22)] +// 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.3f7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc18_14.1 (%Self.as_type)) -> %i32; +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type)) -> %i32; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C) -> %i32; @@ -181,13 +181,13 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // 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 d51f618aa8199..56bd38b1c47df 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.044: %Y.assoc_type.56e = assoc_entity element0, @Y.%T [symbolic] // CHECK:STDOUT: %.Self.5c8: %Y.type.420 = bind_symbolic_name .Self [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type.420 [symbolic] -// CHECK:STDOUT: %.Self.as_type.667: type = facet_access_type %.Self.5c8 [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type.145: type = symbolic_binding_type .Self, %.Self.5c8 [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness.a57: = lookup_impl_witness %.Self.5c8, @Y, @Y(%OuterParam) [symbolic] // CHECK:STDOUT: %impl.elem0.a37: type = impl_witness_access %Y.lookup_impl_witness.a57, element0 [symbolic] // CHECK:STDOUT: %Y_where.type.197: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.a37 = %empty_tuple.type> [symbolic] @@ -136,7 +136,7 @@ fn F() { // CHECK:STDOUT: %Self.177: %Y.type.c91 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Y.assoc_type.06e: type = assoc_entity_type @Y, @Y(%empty_tuple.type) [concrete] // CHECK:STDOUT: %assoc0.0a6: %Y.assoc_type.06e = assoc_entity element0, @Y.%T [concrete] -// CHECK:STDOUT: %.Self.as_type.2b9: type = facet_access_type %.Self.0fc [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.8f7: type = symbolic_binding_type .Self, %.Self.0fc [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness.1fc: = lookup_impl_witness %.Self.0fc, @Y, @Y(%empty_tuple.type) [symbolic_self] // CHECK:STDOUT: %impl.elem0.f73: type = impl_witness_access %Y.lookup_impl_witness.1fc, element0 [symbolic_self] // CHECK:STDOUT: %Y_where.type.145: type = facet_type <@Y, @Y(%empty_tuple.type) where %impl.elem0.f73 = %empty_tuple.type> [concrete] @@ -183,8 +183,8 @@ fn F() { // CHECK:STDOUT: %.Self.ref: %Y.type.c91 = name_ref .Self, %.Self [symbolic_self = constants.%.Self.0fc] // CHECK:STDOUT: %.loc58_29.1: %Y.assoc_type.06e = specific_constant @T.%assoc0, @Y(constants.%empty_tuple.type) [concrete = constants.%assoc0.0a6] // CHECK:STDOUT: %T.ref: %Y.assoc_type.06e = name_ref T, %.loc58_29.1 [concrete = constants.%assoc0.0a6] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.2b9] -// CHECK:STDOUT: %.loc58_29.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.2b9] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.8f7] +// CHECK:STDOUT: %.loc58_29.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.8f7] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness.1fc, element0 [symbolic_self = constants.%impl.elem0.f73] // CHECK:STDOUT: %.loc58_35.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc58_35.2: type = converted %.loc58_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -250,8 +250,8 @@ fn F() { // CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.420) = name_ref .Self, %.Self.3 [symbolic = %.Self.1 (constants.%.Self.5c8)] // CHECK:STDOUT: %.loc54_20.1: @Outer.G.%Y.assoc_type (%Y.assoc_type.56e) = specific_constant @T.%assoc0, @Y(constants.%OuterParam) [symbolic = %assoc0 (constants.%assoc0.044)] // CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.56e) = name_ref T, %.loc54_20.1 [symbolic = %assoc0 (constants.%assoc0.044)] -// CHECK:STDOUT: %.Self.as_type.loc54_20.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc54_20.1 (constants.%.Self.as_type.667)] -// CHECK:STDOUT: %.loc54_20.2: type = converted %.Self.ref, %.Self.as_type.loc54_20.2 [symbolic = %.Self.as_type.loc54_20.1 (constants.%.Self.as_type.667)] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.145)] +// CHECK:STDOUT: %.loc54_20.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.145)] // CHECK:STDOUT: %impl.elem0.loc54_20.2: type = impl_witness_access constants.%Y.lookup_impl_witness.a57, element0 [symbolic = %impl.elem0.loc54_20.1 (constants.%impl.elem0.a37)] // CHECK:STDOUT: %.loc54_26.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc54_26.2: type = converted %.loc54_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -281,7 +281,7 @@ fn F() { // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.56e)] // CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.56e) = assoc_entity element0, @Y.%T [symbolic = %assoc0 (constants.%assoc0.044)] -// CHECK:STDOUT: %.Self.as_type.loc54_20.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc54_20.1 (constants.%.Self.as_type.667)] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.145)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.a57)] // CHECK:STDOUT: %impl.elem0.loc54_20.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc54_20.1 (constants.%impl.elem0.a37)] // CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc54_20.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.197)] @@ -341,7 +341,7 @@ fn F() { // CHECK:STDOUT: %require_complete => constants.%require_complete // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.56e // CHECK:STDOUT: %assoc0 => constants.%assoc0.044 -// CHECK:STDOUT: %.Self.as_type.loc54_20.1 => constants.%.Self.as_type.667 +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.145 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.a57 // CHECK:STDOUT: %impl.elem0.loc54_20.1 => constants.%impl.elem0.a37 // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.197 @@ -376,7 +376,7 @@ fn F() { // CHECK:STDOUT: %require_complete => constants.%complete_type.315 // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.06e // CHECK:STDOUT: %assoc0 => constants.%assoc0.0a6 -// CHECK:STDOUT: %.Self.as_type.loc54_20.1 => constants.%.Self.as_type.2b9 +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.8f7 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.1fc // CHECK:STDOUT: %impl.elem0.loc54_20.1 => constants.%impl.elem0.f73 // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.145 @@ -407,7 +407,7 @@ fn F() { // CHECK:STDOUT: %assoc0.fca: %Y.assoc_type.c54 = assoc_entity element0, @Y.%T [symbolic] // CHECK:STDOUT: %.Self.707: %Y.type.699 = bind_symbolic_name .Self [symbolic] // CHECK:STDOUT: %require_complete.83f: = require_complete_type %Y.type.699 [symbolic] -// CHECK:STDOUT: %.Self.as_type.29f: type = facet_access_type %.Self.707 [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type.1ad: type = symbolic_binding_type .Self, %.Self.707 [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness.5a6: = lookup_impl_witness %.Self.707, @Y, @Y(%OuterParam) [symbolic] // CHECK:STDOUT: %impl.elem0.31f: type = impl_witness_access %Y.lookup_impl_witness.5a6, element0 [symbolic] // CHECK:STDOUT: %Y_where.type.6e4: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.31f = %empty_tuple.type> [symbolic] @@ -450,7 +450,7 @@ fn F() { // CHECK:STDOUT: %Y.assoc_type.38c: type = assoc_entity_type @Y, @Y(%Z1.facet) [concrete] // CHECK:STDOUT: %assoc0.84b: %Y.assoc_type.38c = assoc_entity element0, @Y.%T [concrete] // CHECK:STDOUT: %complete_type.7f3: = complete_type_witness %Y.type.048 [concrete] -// CHECK:STDOUT: %.Self.as_type.b3e: type = facet_access_type %.Self.f9f [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.c75: type = symbolic_binding_type .Self, %.Self.f9f [symbolic_self] // CHECK:STDOUT: %complete_type.01a: = complete_type_witness %Y_where.type.15e [concrete] // CHECK:STDOUT: %Y.impl_witness.917: = impl_witness @Outer.%Y.impl_witness_table, @C.as.Y.impl(%Z1.facet) [concrete] // CHECK:STDOUT: %facet_value.0c6: %Y_where.type.15e = facet_value %C.b33, (%Y.impl_witness.917) [concrete] @@ -555,7 +555,7 @@ fn F() { // CHECK:STDOUT: %require_complete.loc14_21: = require_complete_type %Y.type [symbolic = %require_complete.loc14_21 (constants.%require_complete.83f)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.c54)] // CHECK:STDOUT: %assoc0: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.c54) = assoc_entity element0, @Y.%T [symbolic = %assoc0 (constants.%assoc0.fca)] -// 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.29f)] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.1ad)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.2, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.5a6)] // CHECK:STDOUT: %impl.elem0.loc14_21.2: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_21.2 (constants.%impl.elem0.31f)] // CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc14_21.2 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.6e4)] @@ -602,8 +602,8 @@ fn F() { // CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.699) = name_ref .Self, %.Self.3 [symbolic = %.Self.1 (constants.%.Self.707)] // CHECK:STDOUT: %.loc11_20.1: @Outer.G.%Y.assoc_type (%Y.assoc_type.c54) = specific_constant @T.%assoc0, @Y(constants.%OuterParam) [symbolic = %assoc0 (constants.%assoc0.fca)] // CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.c54) = name_ref T, %.loc11_20.1 [symbolic = %assoc0 (constants.%assoc0.fca)] -// CHECK:STDOUT: %.Self.as_type.loc11_20.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_20.1 (constants.%.Self.as_type.29f)] -// CHECK:STDOUT: %.loc11_20.2: type = converted %.Self.ref, %.Self.as_type.loc11_20.2 [symbolic = %.Self.as_type.loc11_20.1 (constants.%.Self.as_type.29f)] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.1ad)] +// CHECK:STDOUT: %.loc11_20.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.1ad)] // CHECK:STDOUT: %impl.elem0.loc11_20.2: type = impl_witness_access constants.%Y.lookup_impl_witness.5a6, element0 [symbolic = %impl.elem0.loc11_20.1 (constants.%impl.elem0.31f)] // CHECK:STDOUT: %.loc11_26.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc11_26.2: type = converted %.loc11_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -624,8 +624,8 @@ fn F() { // CHECK:STDOUT: %.Self.ref: @C.as.Y.impl.%Y.type (%Y.type.699) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.707)] // CHECK:STDOUT: %.loc14_21.1: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.c54) = specific_constant @T.%assoc0, @Y(constants.%OuterParam) [symbolic = %assoc0 (constants.%assoc0.fca)] // CHECK:STDOUT: %T.ref: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.c54) = name_ref T, %.loc14_21.1 [symbolic = %assoc0 (constants.%assoc0.fca)] -// 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.29f)] -// CHECK:STDOUT: %.loc14_21.2: type = converted %.Self.ref, %.Self.as_type.loc14_21.1 [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.29f)] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.1ad)] +// CHECK:STDOUT: %.loc14_21.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.1ad)] // CHECK:STDOUT: %impl.elem0.loc14_21.1: type = impl_witness_access constants.%Y.lookup_impl_witness.5a6, element0 [symbolic = %impl.elem0.loc14_21.2 (constants.%impl.elem0.31f)] // CHECK:STDOUT: %.loc14_27.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc14_27.2: type = converted %.loc14_27.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -659,7 +659,7 @@ fn F() { // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete.83f)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.c54)] // CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.c54) = assoc_entity element0, @Y.%T [symbolic = %assoc0 (constants.%assoc0.fca)] -// CHECK:STDOUT: %.Self.as_type.loc11_20.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc11_20.1 (constants.%.Self.as_type.29f)] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.1ad)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.5a6)] // CHECK:STDOUT: %impl.elem0.loc11_20.1: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_20.1 (constants.%impl.elem0.31f)] // CHECK:STDOUT: %Y_where.type: type = facet_type <@Y, @Y(%OuterParam) where %impl.elem0.loc11_20.1 = constants.%empty_tuple.type> [symbolic = %Y_where.type (constants.%Y_where.type.6e4)] @@ -747,7 +747,7 @@ fn F() { // CHECK:STDOUT: %require_complete => constants.%require_complete.83f // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.c54 // CHECK:STDOUT: %assoc0 => constants.%assoc0.fca -// CHECK:STDOUT: %.Self.as_type.loc11_20.1 => constants.%.Self.as_type.29f +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.1ad // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.5a6 // CHECK:STDOUT: %impl.elem0.loc11_20.1 => constants.%impl.elem0.31f // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.6e4 @@ -765,7 +765,7 @@ fn F() { // CHECK:STDOUT: %require_complete.loc14_21 => constants.%require_complete.83f // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.c54 // CHECK:STDOUT: %assoc0 => constants.%assoc0.fca -// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.29f +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.1ad // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.5a6 // CHECK:STDOUT: %impl.elem0.loc14_21.2 => constants.%impl.elem0.31f // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.6e4 @@ -802,7 +802,7 @@ fn F() { // CHECK:STDOUT: %require_complete.loc14_21 => constants.%complete_type.7f3 // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.38c // CHECK:STDOUT: %assoc0 => constants.%assoc0.84b -// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.b3e +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.c75 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.9a6 // CHECK:STDOUT: %impl.elem0.loc14_21.2 => constants.%impl.elem0.735 // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.15e @@ -819,7 +819,7 @@ fn F() { // CHECK:STDOUT: %require_complete => constants.%complete_type.7f3 // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.38c // CHECK:STDOUT: %assoc0 => constants.%assoc0.84b -// CHECK:STDOUT: %.Self.as_type.loc11_20.1 => constants.%.Self.as_type.b3e +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.c75 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.9a6 // CHECK:STDOUT: %impl.elem0.loc11_20.1 => constants.%impl.elem0.735 // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type.15e 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 b530b162e7db3..9530da960bb51 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.0e7: type = assoc_entity_type @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %assoc0.abb: %Z.assoc_type.0e7 = assoc_entity element0, @Z.%X [symbolic] // CHECK:STDOUT: %require_complete.760: = require_complete_type %Z.type.318 [symbolic] -// CHECK:STDOUT: %.Self.as_type.d30: type = facet_access_type %.Self.b4a [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type.066: type = symbolic_binding_type .Self, %.Self.b4a [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.e23: = lookup_impl_witness %.Self.b4a, @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %impl.elem0.abb: type = impl_witness_access %Z.lookup_impl_witness.e23, element0 [symbolic] // CHECK:STDOUT: %Z_where.type.90e: type = facet_type <@Z, @Z(%S) where %impl.elem0.abb = %empty_tuple.type> [symbolic] @@ -129,7 +129,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Self.cbb9: %Z.type.a71 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Z.assoc_type.252: type = assoc_entity_type @Z, @Z(%C) [concrete] // CHECK:STDOUT: %assoc0.ea4: %Z.assoc_type.252 = assoc_entity element0, @Z.%X [concrete] -// CHECK:STDOUT: %.Self.as_type.16f: type = facet_access_type %.Self.784 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.252: type = symbolic_binding_type .Self, %.Self.784 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness.62b: = lookup_impl_witness %.Self.784, @Z, @Z(%C) [symbolic_self] // CHECK:STDOUT: %impl.elem0.dac: type = impl_witness_access %Z.lookup_impl_witness.62b, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.9b7: type = facet_type <@Z, @Z(%C) where %impl.elem0.dac = %T.8b3> [symbolic] @@ -137,14 +137,14 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.impl_witness.e18: = impl_witness file.%Z.impl_witness_table.loc11, @T.as.Z.impl.3bd(%T.8b3) [symbolic] // CHECK:STDOUT: %T.fcc: %Z.type.a71 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.6dc: type = pattern_type %Z.type.a71 [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.fcc [symbolic] -// CHECK:STDOUT: %pattern_type.3c4: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.fcc [symbolic] +// CHECK:STDOUT: %pattern_type.7cb: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.08e: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %Z_where.type.7a1: type = facet_type <@Z, @Z(%C) where %impl.elem0.dac = %T.as_type> [symbolic] -// CHECK:STDOUT: %require_complete.685: = require_complete_type %Z_where.type.7a1 [symbolic] -// CHECK:STDOUT: %Z.impl_witness.69d: = impl_witness file.%Z.impl_witness_table.loc11, @T.as.Z.impl.3bd(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.5a9: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Z_where.type.84a: type = facet_type <@Z, @Z(%C) where %impl.elem0.dac = %T.binding.as_type> [symbolic] +// CHECK:STDOUT: %require_complete.2b3: = require_complete_type %Z_where.type.84a [symbolic] +// CHECK:STDOUT: %Z.impl_witness.8e9: = impl_witness file.%Z.impl_witness_table.loc11, @T.as.Z.impl.3bd(%T.binding.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -181,8 +181,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.c87.%Z.type.loc9_42.2 (%Z.type.318) = name_ref .Self, %.Self.1 [symbolic = %.Self.4 (constants.%.Self.b4a)] // CHECK:STDOUT: %.loc9_50.1: @T.as.Z.impl.c87.%Z.assoc_type (%Z.assoc_type.0e7) = specific_constant @X.%assoc0, @Z(constants.%S) [symbolic = %assoc0 (constants.%assoc0.abb)] // CHECK:STDOUT: %X.ref: @T.as.Z.impl.c87.%Z.assoc_type (%Z.assoc_type.0e7) = name_ref X, %.loc9_50.1 [symbolic = %assoc0 (constants.%assoc0.abb)] -// 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.d30)] -// CHECK:STDOUT: %.loc9_50.2: type = converted %.Self.ref, %.Self.as_type.loc9_50.1 [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.d30)] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.066)] +// CHECK:STDOUT: %.loc9_50.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.066)] // CHECK:STDOUT: %impl.elem0.loc9_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.e23, element0 [symbolic = %impl.elem0.loc9_50.2 (constants.%impl.elem0.abb)] // CHECK:STDOUT: %.loc9_56.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_56.2: type = converted %.loc9_56.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -209,8 +209,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.ref: %Z.type.a71 = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.784] // CHECK:STDOUT: %.loc11_46.1: %Z.assoc_type.252 = specific_constant @X.%assoc0, @Z(constants.%C) [concrete = constants.%assoc0.ea4] // CHECK:STDOUT: %X.ref: %Z.assoc_type.252 = name_ref X, %.loc11_46.1 [concrete = constants.%assoc0.ea4] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.16f] -// CHECK:STDOUT: %.loc11_46.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.16f] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.252] +// CHECK:STDOUT: %.loc11_46.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.252] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.62b, element0 [symbolic_self = constants.%impl.elem0.dac] // CHECK:STDOUT: %T.ref.loc11_51: type = name_ref T, %T.loc11_20.1 [symbolic = %T.loc11_20.2 (constants.%T.8b3)] // CHECK:STDOUT: %.loc11_40: type = where_expr %.Self.1 [symbolic = %Z_where.type (constants.%Z_where.type.9b7)] { @@ -225,8 +225,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %impl_witness_assoc_constant.loc11: type = impl_witness_assoc_constant constants.%T.8b3 [symbolic = @T.as.Z.impl.3bd.%T.loc11_20.2 (constants.%T.8b3)] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.6dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.3c4) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.3c4) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.7cb) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.7cb) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_13: type = splice_block %Z.type [concrete = constants.%Z.type.a71] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] @@ -235,13 +235,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.a71] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc13_6.2: %Z.type.a71 = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T.fcc)] -// 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.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.ref.loc13: %Z.type.a71 = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T.fcc)] -// 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: %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: } -// CHECK:STDOUT: %t: @F.%T.as_type.loc13_19.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -279,7 +279,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.loc9_50: = require_complete_type %Z.type.loc9_42.2 [symbolic = %require_complete.loc9_50 (constants.%require_complete.760)] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc9_24.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.0e7)] // CHECK:STDOUT: %assoc0: @T.as.Z.impl.c87.%Z.assoc_type (%Z.assoc_type.0e7) = assoc_entity element0, @Z.%X [symbolic = %assoc0 (constants.%assoc0.abb)] -// 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.d30)] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.4 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.066)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.4, @Z, @Z(%S.loc9_24.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.e23)] // CHECK:STDOUT: %impl.elem0.loc9_50.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_50.2 (constants.%impl.elem0.abb)] // CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc9_24.2) where %impl.elem0.loc9_50.2 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.90e)] @@ -318,30 +318,30 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc13_6.2: %Z.type.a71) { // CHECK:STDOUT: %T.loc13_6.1: %Z.type.a71 = bind_symbolic_name T, 0 [symbolic = %T.loc13_6.1 (constants.%T.fcc)] -// CHECK:STDOUT: %T.as_type.loc13_19.1: type = facet_access_type %T.loc13_6.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.3c4)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc13_6.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.7cb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc13_19.1 [symbolic = %require_complete (constants.%require_complete.08e)] -// CHECK:STDOUT: %Z.impl_witness: = impl_witness file.%Z.impl_witness_table.loc11, @T.as.Z.impl.3bd(%T.as_type.loc13_19.1) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.69d)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.5a9)] +// CHECK:STDOUT: %Z.impl_witness: = impl_witness file.%Z.impl_witness_table.loc11, @T.as.Z.impl.3bd(%T.binding.as_type) [symbolic = %Z.impl_witness (constants.%Z.impl_witness.8e9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_19.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.3c4) = binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.7cb) = binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_19.1 (%T.as_type) = name_ref t, %t -// CHECK:STDOUT: %.loc15_11.1: type = splice_block %impl.elem0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] { +// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %.loc15_11.1: type = splice_block %impl.elem0 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { // CHECK:STDOUT: %T.ref.loc15: %Z.type.a71 = name_ref T, %T.loc13_6.2 [symbolic = %T.loc13_6.1 (constants.%T.fcc)] // CHECK:STDOUT: %.loc15_11.2: %Z.assoc_type.252 = specific_constant @X.%assoc0, @Z(constants.%C) [concrete = constants.%assoc0.ea4] // CHECK:STDOUT: %X.ref: %Z.assoc_type.252 = name_ref X, %.loc15_11.2 [concrete = constants.%assoc0.ea4] -// CHECK:STDOUT: %T.as_type.loc15_11.1: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc15_11.3: type = converted %T.ref.loc15, %T.as_type.loc15_11.1 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_type.loc15_11.2: type = facet_access_type constants.%T.fcc [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc15_11.4: type = converted constants.%T.fcc, %T.as_type.loc15_11.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.69d, element0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// 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_11.3: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %as_type: type = facet_access_type constants.%T.fcc [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc15_11.4: type = converted constants.%T.fcc, %as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.8e9, element0 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%T.as_type.loc13_19.1 (%T.as_type) = bind_name a, %t.ref +// CHECK:STDOUT: %a: @F.%T.binding.as_type (%T.binding.as_type) = bind_name a, %t.ref // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -372,7 +372,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.loc9_50 => constants.%require_complete.760 // CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.0e7 // CHECK:STDOUT: %assoc0 => constants.%assoc0.abb -// CHECK:STDOUT: %.Self.as_type.loc9_50.2 => constants.%.Self.as_type.d30 +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.066 // CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.e23 // CHECK:STDOUT: %impl.elem0.loc9_50.2 => constants.%impl.elem0.abb // CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.90e @@ -401,15 +401,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.fcc) { // CHECK:STDOUT: %T.loc13_6.1 => constants.%T.fcc -// CHECK:STDOUT: %T.as_type.loc13_19.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3c4 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7cb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.Z.impl.3bd(constants.%T.as_type) { -// CHECK:STDOUT: %T.loc11_20.2 => constants.%T.as_type -// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.7a1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.685 -// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.69d +// CHECK:STDOUT: specific @T.as.Z.impl.3bd(constants.%T.binding.as_type) { +// CHECK:STDOUT: %T.loc11_20.2 => constants.%T.binding.as_type +// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.84a +// CHECK:STDOUT: %require_complete => constants.%require_complete.2b3 +// CHECK:STDOUT: %Z.impl_witness => constants.%Z.impl_witness.8e9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -442,7 +442,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.assoc_type.0e7: type = assoc_entity_type @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %assoc0.abb: %Z.assoc_type.0e7 = assoc_entity element0, @Z.%X [symbolic] // CHECK:STDOUT: %require_complete.760: = require_complete_type %Z.type.318 [symbolic] -// CHECK:STDOUT: %.Self.as_type.d30: type = facet_access_type %.Self.b4a [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type.066: type = symbolic_binding_type .Self, %.Self.b4a [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.e23: = lookup_impl_witness %.Self.b4a, @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %impl.elem0.abb: type = impl_witness_access %Z.lookup_impl_witness.e23, element0 [symbolic] // CHECK:STDOUT: %Z_where.type.90e: type = facet_type <@Z, @Z(%S) where %impl.elem0.abb = %empty_tuple.type> [symbolic] @@ -453,7 +453,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Self.cbb9: %Z.type.a71 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Z.assoc_type.252: type = assoc_entity_type @Z, @Z(%C) [concrete] // CHECK:STDOUT: %assoc0.ea4: %Z.assoc_type.252 = assoc_entity element0, @Z.%X [concrete] -// CHECK:STDOUT: %.Self.as_type.16f: type = facet_access_type %.Self.784 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.252: type = symbolic_binding_type .Self, %.Self.784 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness.62b: = lookup_impl_witness %.Self.784, @Z, @Z(%C) [symbolic_self] // CHECK:STDOUT: %impl.elem0.dac: type = impl_witness_access %Z.lookup_impl_witness.62b, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.9b7: type = facet_type <@Z, @Z(%C) where %impl.elem0.dac = %T.8b3> [symbolic] @@ -461,11 +461,11 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.impl_witness.e18: = impl_witness file.%Z.impl_witness_table.loc12, @T.as.Z.impl.3bd(%T.8b3) [symbolic] // CHECK:STDOUT: %T.fcc: %Z.type.a71 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.6dc: type = pattern_type %Z.type.a71 [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.fcc [symbolic] -// CHECK:STDOUT: %pattern_type.3c4: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.fcc [symbolic] +// CHECK:STDOUT: %pattern_type.7cb: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.08e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.5a9: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.38e: = lookup_impl_witness %T.fcc, @Z, @Z(%C) [symbolic] // CHECK:STDOUT: %impl.elem0.407: type = impl_witness_access %Z.lookup_impl_witness.38e, element0 [symbolic] // CHECK:STDOUT: %require_complete.d9a: = require_complete_type %impl.elem0.407 [symbolic] @@ -524,8 +524,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.c87.%Z.type.loc10_42.2 (%Z.type.318) = name_ref .Self, %.Self.1 [symbolic = %.Self.4 (constants.%.Self.b4a)] // CHECK:STDOUT: %.loc10_50.1: @T.as.Z.impl.c87.%Z.assoc_type (%Z.assoc_type.0e7) = specific_constant @X.%assoc0, @Z(constants.%S) [symbolic = %assoc0 (constants.%assoc0.abb)] // CHECK:STDOUT: %X.ref: @T.as.Z.impl.c87.%Z.assoc_type (%Z.assoc_type.0e7) = name_ref X, %.loc10_50.1 [symbolic = %assoc0 (constants.%assoc0.abb)] -// 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.d30)] -// CHECK:STDOUT: %.loc10_50.2: type = converted %.Self.ref, %.Self.as_type.loc10_50.1 [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.d30)] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.066)] +// CHECK:STDOUT: %.loc10_50.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.066)] // CHECK:STDOUT: %impl.elem0.loc10_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.e23, element0 [symbolic = %impl.elem0.loc10_50.2 (constants.%impl.elem0.abb)] // CHECK:STDOUT: %.loc10_56.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_56.2: type = converted %.loc10_56.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -552,8 +552,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.ref: %Z.type.a71 = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.784] // CHECK:STDOUT: %.loc12_40.1: %Z.assoc_type.252 = specific_constant @X.%assoc0, @Z(constants.%C) [concrete = constants.%assoc0.ea4] // CHECK:STDOUT: %X.ref: %Z.assoc_type.252 = name_ref X, %.loc12_40.1 [concrete = constants.%assoc0.ea4] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.16f] -// CHECK:STDOUT: %.loc12_40.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.16f] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.252] +// CHECK:STDOUT: %.loc12_40.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.252] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.62b, element0 [symbolic_self = constants.%impl.elem0.dac] // CHECK:STDOUT: %T.ref.loc12_45: type = name_ref T, %T.loc12_14.1 [symbolic = %T.loc12_14.2 (constants.%T.8b3)] // CHECK:STDOUT: %.loc12_34: type = where_expr %.Self.1 [symbolic = %Z_where.type (constants.%Z_where.type.9b7)] { @@ -568,8 +568,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %impl_witness_assoc_constant.loc12: type = impl_witness_assoc_constant constants.%T.8b3 [symbolic = @T.as.Z.impl.3bd.%T.loc12_14.2 (constants.%T.8b3)] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.6dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.3c4) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.3c4) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.7cb) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.7cb) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_13: type = splice_block %Z.type [concrete = constants.%Z.type.a71] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] @@ -578,13 +578,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.a71] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc14_6.2: %Z.type.a71 = bind_symbolic_name T, 0 [symbolic = %T.loc14_6.1 (constants.%T.fcc)] -// 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.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.ref.loc14: %Z.type.a71 = name_ref T, %T.loc14_6.2 [symbolic = %T.loc14_6.1 (constants.%T.fcc)] -// 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: %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: } -// CHECK:STDOUT: %t: @F.%T.as_type.loc14_19.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @F.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -630,7 +630,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.loc10_50: = require_complete_type %Z.type.loc10_42.2 [symbolic = %require_complete.loc10_50 (constants.%require_complete.760)] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc10_24.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.0e7)] // CHECK:STDOUT: %assoc0: @T.as.Z.impl.c87.%Z.assoc_type (%Z.assoc_type.0e7) = assoc_entity element0, @Z.%X [symbolic = %assoc0 (constants.%assoc0.abb)] -// 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.d30)] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.4 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.066)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.4, @Z, @Z(%S.loc10_24.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.e23)] // CHECK:STDOUT: %impl.elem0.loc10_50.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_50.2 (constants.%impl.elem0.abb)] // CHECK:STDOUT: %Z_where.type: type = facet_type <@Z, @Z(%S.loc10_24.2) where %impl.elem0.loc10_50.2 = constants.%empty_tuple.type> [symbolic = %Z_where.type (constants.%Z_where.type.90e)] @@ -669,11 +669,11 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc14_6.2: %Z.type.a71) { // CHECK:STDOUT: %T.loc14_6.1: %Z.type.a71 = bind_symbolic_name T, 0 [symbolic = %T.loc14_6.1 (constants.%T.fcc)] -// CHECK:STDOUT: %T.as_type.loc14_19.1: type = facet_access_type %T.loc14_6.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.3c4)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc14_6.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.7cb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc14_19.1 [symbolic = %require_complete.loc14 (constants.%require_complete.08e)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc14 (constants.%require_complete.5a9)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc14_6.1, @Z, @Z(constants.%C) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.38e)] // CHECK:STDOUT: %impl.elem0.loc22_11.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_11.2 (constants.%impl.elem0.407)] // CHECK:STDOUT: %require_complete.loc22_11: = require_complete_type %impl.elem0.loc22_11.2 [symbolic = %require_complete.loc22_11 (constants.%require_complete.d9a)] @@ -683,18 +683,18 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%impl.elem0.loc22_11.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.cd9)] // CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.cd9) = assoc_entity element0, imports.%Core.import_ref.1c7 [symbolic = %assoc0 (constants.%assoc0.1bf)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc14_19.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: @F.%pattern_type.loc22 (%pattern_type.420) = binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc14_19.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t // CHECK:STDOUT: %.loc22_11.1: type = splice_block %impl.elem0.loc22_11.1 [symbolic = %impl.elem0.loc22_11.2 (constants.%impl.elem0.407)] { // CHECK:STDOUT: %T.ref.loc22: %Z.type.a71 = name_ref T, %T.loc14_6.2 [symbolic = %T.loc14_6.1 (constants.%T.fcc)] // CHECK:STDOUT: %.loc22_11.2: %Z.assoc_type.252 = specific_constant @X.%assoc0, @Z(constants.%C) [concrete = constants.%assoc0.ea4] // CHECK:STDOUT: %X.ref: %Z.assoc_type.252 = name_ref X, %.loc22_11.2 [concrete = constants.%assoc0.ea4] -// 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_11.3: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_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_11.3: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc22_11.1: type = impl_witness_access constants.%Z.lookup_impl_witness.38e, element0 [symbolic = %impl.elem0.loc22_11.2 (constants.%impl.elem0.407)] // CHECK:STDOUT: } // CHECK:STDOUT: %ImplicitAs.type.loc22_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%impl.elem0.407)> [symbolic = %ImplicitAs.type.loc22_16.2 (constants.%ImplicitAs.type.d74)] @@ -732,7 +732,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %require_complete.loc10_50 => constants.%require_complete.760 // CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.0e7 // CHECK:STDOUT: %assoc0 => constants.%assoc0.abb -// CHECK:STDOUT: %.Self.as_type.loc10_50.2 => constants.%.Self.as_type.d30 +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.066 // CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.e23 // CHECK:STDOUT: %impl.elem0.loc10_50.2 => constants.%impl.elem0.abb // CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.90e @@ -761,8 +761,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.fcc) { // CHECK:STDOUT: %T.loc14_6.1 => constants.%T.fcc -// CHECK:STDOUT: %T.as_type.loc14_19.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.3c4 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.7cb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X(constants.%C, constants.%T.fcc) {} @@ -779,7 +779,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %U.8b3: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %.Self.690: %Ptr.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.690 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.690 [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.690, @Ptr [symbolic_self] // CHECK:STDOUT: %impl.elem0.b59: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %U.8b3 [symbolic] @@ -832,8 +832,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.1: %Ptr.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.690] // CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.690] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.d28] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.b59] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_20.1 [symbolic = %U.loc7_20.2 (constants.%U.8b3)] // CHECK:STDOUT: %ptr.loc7_54.1: type = ptr_type %U.ref.loc7_53 [symbolic = %ptr.loc7_54.2 (constants.%ptr.79f131.1)] @@ -977,7 +977,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %U.8b3: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %.Self.690: %Ptr.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.690 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.690 [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.690, @Ptr [symbolic_self] // CHECK:STDOUT: %impl.elem0.b59: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %U.8b3 [symbolic] @@ -986,24 +986,24 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness.da3: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.8b3) [symbolic] // CHECK:STDOUT: %T.a46: %Ptr.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3d8: type = pattern_type %Ptr.type [concrete] -// CHECK:STDOUT: %T.as_type.dc4: type = facet_access_type %T.a46 [symbolic] -// CHECK:STDOUT: %pattern_type.851: type = pattern_type %T.as_type.dc4 [symbolic] -// CHECK:STDOUT: %ptr.ae5: type = ptr_type %T.as_type.dc4 [symbolic] -// CHECK:STDOUT: %Ptr_where.type.483: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.ae5> [symbolic] -// CHECK:STDOUT: %require_complete.c7f: = require_complete_type %Ptr_where.type.483 [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.530: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.dc4) [symbolic] -// CHECK:STDOUT: %pattern_type.ec6: type = pattern_type %ptr.ae5 [symbolic] +// CHECK:STDOUT: %T.binding.as_type.3e3: type = symbolic_binding_type T, 0, %T.a46 [symbolic] +// CHECK:STDOUT: %pattern_type.608: type = pattern_type %T.binding.as_type.3e3 [symbolic] +// CHECK:STDOUT: %ptr.a08: type = ptr_type %T.binding.as_type.3e3 [symbolic] +// CHECK:STDOUT: %Ptr_where.type.833: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.a08> [symbolic] +// CHECK:STDOUT: %require_complete.8ad: = require_complete_type %Ptr_where.type.833 [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.b05: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type.3e3) [symbolic] +// CHECK:STDOUT: %pattern_type.5bb: type = pattern_type %ptr.a08 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.e69: = require_complete_type %ptr.ae5 [symbolic] -// CHECK:STDOUT: %require_complete.43a: = require_complete_type %T.as_type.dc4 [symbolic] +// CHECK:STDOUT: %require_complete.48a: = require_complete_type %ptr.a08 [symbolic] +// CHECK:STDOUT: %require_complete.9ef: = require_complete_type %T.binding.as_type.3e3 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.68e: = lookup_impl_witness %ptr.ae5, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.ae5, (%Copy.lookup_impl_witness.68e) [symbolic] -// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.6d5: %.19c = impl_witness_access %Copy.lookup_impl_witness.68e, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.8d6: = specific_impl_function %impl.elem0.6d5, @Copy.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.38c: = lookup_impl_witness %ptr.a08, @Copy [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.a08, (%Copy.lookup_impl_witness.38c) [symbolic] +// CHECK:STDOUT: %.6a5: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.47b: %.6a5 = impl_witness_access %Copy.lookup_impl_witness.38c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.848: = specific_impl_function %impl.elem0.47b, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1031,8 +1031,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.1: %Ptr.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.690] // CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.690] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.d28] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.b59] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_20.1 [symbolic = %U.loc7_20.2 (constants.%U.8b3)] // CHECK:STDOUT: %ptr.loc7_54.1: type = ptr_type %U.ref.loc7_53 [symbolic = %ptr.loc7_54.2 (constants.%ptr.79f131.1)] @@ -1048,33 +1048,33 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.79f131.1 [symbolic = @U.as.Ptr.impl.%ptr.loc7_54.2 (constants.%ptr.79f131.1)] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.3d8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_19 (%pattern_type.851) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_19 (%pattern_type.851) = ref_param_pattern %t.patt, call_param0 [concrete] -// CHECK:STDOUT: %t.var_patt: @F.%pattern_type.loc9_19 (%pattern_type.851) = var_pattern %t.param_patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.ec6) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.ec6) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_19 (%pattern_type.608) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_19 (%pattern_type.608) = ref_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.var_patt: @F.%pattern_type.loc9_19 (%pattern_type.608) = var_pattern %t.param_patt [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.5bb) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.5bb) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.a46)] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.d28] -// CHECK:STDOUT: %T.as_type.loc9_29.1: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %.loc9_29.1: type = converted %T.ref.loc9_28, %T.as_type.loc9_29.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %T.as_type.loc9_29.2: type = facet_access_type constants.%T.a46 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %.loc9_29.2: type = converted constants.%T.a46, %T.as_type.loc9_29.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.530, element0 [symbolic = %ptr (constants.%ptr.ae5)] +// 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.3e3)] +// CHECK:STDOUT: %.loc9_29.1: type = converted %T.ref.loc9_28, %T.as_type.loc9_29 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %as_type: type = facet_access_type constants.%T.a46 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %.loc9_29.2: type = converted constants.%T.a46, %as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.b05, element0 [symbolic = %ptr (constants.%ptr.a08)] // CHECK:STDOUT: %.loc9_10: type = splice_block %Ptr.ref [concrete = constants.%Ptr.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_6.2: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.a46)] -// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.dc4) = 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.dc4)] { +// CHECK:STDOUT: %t.param: ref @F.%T.binding.as_type (%T.binding.as_type.3e3) = 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.3e3)] { // CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.a46)] -// 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.dc4)] -// 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.dc4)] +// 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.3e3)] +// 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.3e3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.dc4) = bind_name t, %t.param -// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.ae5) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.ae5) = return_slot %return.param +// CHECK:STDOUT: %t: ref @F.%T.binding.as_type (%T.binding.as_type.3e3) = bind_name t, %t.param +// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.a08) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.a08) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1111,30 +1111,30 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc9_6.2: %Ptr.type) { // CHECK:STDOUT: %T.loc9_6.1: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.a46)] -// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.851)] -// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.530)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.ae5)] -// CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.ec6)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.608)] +// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.b05)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type [symbolic = %ptr (constants.%ptr.a08)] +// CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.5bb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.e69)] -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.43a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.68e)] +// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.48a)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.9ef)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.38c)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.19c)] -// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.19c) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] -// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] +// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.6a5)] +// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.6a5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.47b)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.848)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc9_22.1 (%T.as_type.dc4)) -> @F.%ptr (%ptr.ae5) { +// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type.3e3)) -> @F.%ptr (%ptr.a08) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.dc4) = name_ref t, %t -// CHECK:STDOUT: %addr: @F.%ptr (%ptr.ae5) = addr_of %t.ref -// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.19c) = impl_witness_access constants.%Copy.lookup_impl_witness.68e, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] +// CHECK:STDOUT: %t.ref: ref @F.%T.binding.as_type (%T.binding.as_type.3e3) = name_ref t, %t +// CHECK:STDOUT: %addr: @F.%ptr (%ptr.a08) = addr_of %t.ref +// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.6a5) = impl_witness_access constants.%Copy.lookup_impl_witness.38c, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.47b)] // 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.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.848)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 -// CHECK:STDOUT: %.loc10_10.1: init @F.%ptr (%ptr.ae5) = call %bound_method.loc10_10.2(%addr) +// CHECK:STDOUT: %.loc10_10.1: init @F.%ptr (%ptr.a08) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %.loc10_10.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1151,12 +1151,12 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.da3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.dc4) { -// CHECK:STDOUT: %U.loc7_20.2 => constants.%T.as_type.dc4 -// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.ae5 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.483 -// CHECK:STDOUT: %require_complete => constants.%require_complete.c7f -// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.530 +// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.binding.as_type.3e3) { +// CHECK:STDOUT: %U.loc7_20.2 => constants.%T.binding.as_type.3e3 +// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.a08 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.833 +// CHECK:STDOUT: %require_complete => constants.%require_complete.8ad +// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.b05 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -1165,11 +1165,11 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.a46) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.a46 -// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.dc4 -// CHECK:STDOUT: %pattern_type.loc9_19 => constants.%pattern_type.851 -// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.530 -// CHECK:STDOUT: %ptr => constants.%ptr.ae5 -// CHECK:STDOUT: %pattern_type.loc9_25 => constants.%pattern_type.ec6 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.3e3 +// CHECK:STDOUT: %pattern_type.loc9_19 => constants.%pattern_type.608 +// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.b05 +// CHECK:STDOUT: %ptr => constants.%ptr.a08 +// CHECK:STDOUT: %pattern_type.loc9_25 => constants.%pattern_type.5bb // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- final_impl_rewrite_of_symbolic_through_facet_value.carbon @@ -1184,7 +1184,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %U.8b3: type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %.Self.690: %Ptr.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.690 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.690 [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.690, @Ptr [symbolic_self] // CHECK:STDOUT: %impl.elem0.b59: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.79f131.1: type = ptr_type %U.8b3 [symbolic] @@ -1193,24 +1193,24 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness.da3: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%U.8b3) [symbolic] // CHECK:STDOUT: %T.a46: %Ptr.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.3d8: type = pattern_type %Ptr.type [concrete] -// CHECK:STDOUT: %T.as_type.dc4: type = facet_access_type %T.a46 [symbolic] -// CHECK:STDOUT: %pattern_type.851: type = pattern_type %T.as_type.dc4 [symbolic] -// CHECK:STDOUT: %ptr.ae5: type = ptr_type %T.as_type.dc4 [symbolic] -// CHECK:STDOUT: %Ptr_where.type.483: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.ae5> [symbolic] -// CHECK:STDOUT: %require_complete.c7f: = require_complete_type %Ptr_where.type.483 [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.530: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.dc4) [symbolic] -// CHECK:STDOUT: %pattern_type.ec6: type = pattern_type %ptr.ae5 [symbolic] +// CHECK:STDOUT: %T.binding.as_type.3e3: type = symbolic_binding_type T, 0, %T.a46 [symbolic] +// CHECK:STDOUT: %pattern_type.608: type = pattern_type %T.binding.as_type.3e3 [symbolic] +// CHECK:STDOUT: %ptr.a08: type = ptr_type %T.binding.as_type.3e3 [symbolic] +// CHECK:STDOUT: %Ptr_where.type.833: type = facet_type <@Ptr where %impl.elem0.b59 = %ptr.a08> [symbolic] +// CHECK:STDOUT: %require_complete.8ad: = require_complete_type %Ptr_where.type.833 [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.b05: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type.3e3) [symbolic] +// CHECK:STDOUT: %pattern_type.5bb: type = pattern_type %ptr.a08 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.e69: = require_complete_type %ptr.ae5 [symbolic] -// CHECK:STDOUT: %require_complete.43a: = require_complete_type %T.as_type.dc4 [symbolic] +// CHECK:STDOUT: %require_complete.48a: = require_complete_type %ptr.a08 [symbolic] +// CHECK:STDOUT: %require_complete.9ef: = require_complete_type %T.binding.as_type.3e3 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.68e: = lookup_impl_witness %ptr.ae5, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.ae5, (%Copy.lookup_impl_witness.68e) [symbolic] -// CHECK:STDOUT: %.19c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.6d5: %.19c = impl_witness_access %Copy.lookup_impl_witness.68e, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.8d6: = specific_impl_function %impl.elem0.6d5, @Copy.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.38c: = lookup_impl_witness %ptr.a08, @Copy [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.a08, (%Copy.lookup_impl_witness.38c) [symbolic] +// CHECK:STDOUT: %.6a5: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.47b: %.6a5 = impl_witness_access %Copy.lookup_impl_witness.38c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.848: = specific_impl_function %impl.elem0.47b, @Copy.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1238,8 +1238,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %.Self.1: %Ptr.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.690] // CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.690] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.d28] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.b59] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_20.1 [symbolic = %U.loc7_20.2 (constants.%U.8b3)] // CHECK:STDOUT: %ptr.loc7_54.1: type = ptr_type %U.ref.loc7_53 [symbolic = %ptr.loc7_54.2 (constants.%ptr.79f131.1)] @@ -1255,32 +1255,32 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%ptr.79f131.1 [symbolic = @U.as.Ptr.impl.%ptr.loc7_54.2 (constants.%ptr.79f131.1)] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.3d8 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_19 (%pattern_type.851) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_19 (%pattern_type.851) = ref_param_pattern %t.patt, call_param0 [concrete] -// CHECK:STDOUT: %t.var_patt: @F.%pattern_type.loc9_19 (%pattern_type.851) = var_pattern %t.param_patt [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.ec6) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.ec6) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_19 (%pattern_type.608) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_19 (%pattern_type.608) = ref_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.var_patt: @F.%pattern_type.loc9_19 (%pattern_type.608) = var_pattern %t.param_patt [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_25 (%pattern_type.5bb) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_25 (%pattern_type.5bb) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.a46)] // 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.d28] -// CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type constants.%T.a46 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %.loc9_29: type = converted constants.%T.a46, %T.as_type.loc9_29 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.530, element0 [symbolic = %ptr (constants.%ptr.ae5)] +// CHECK:STDOUT: %as_type: type = facet_access_type constants.%T.a46 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %.loc9_29: type = converted constants.%T.a46, %as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.b05, element0 [symbolic = %ptr (constants.%ptr.a08)] // CHECK:STDOUT: %.loc9_10: type = splice_block %Ptr.ref.loc9_10 [concrete = constants.%Ptr.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] // CHECK:STDOUT: %Ptr.ref.loc9_10: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_6.2: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.a46)] -// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.dc4) = 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.dc4)] { +// CHECK:STDOUT: %t.param: ref @F.%T.binding.as_type (%T.binding.as_type.3e3) = 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.3e3)] { // CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_6.2 [symbolic = %T.loc9_6.1 (constants.%T.a46)] -// 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.dc4)] -// 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.dc4)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.dc4) = bind_name t, %t.param -// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.ae5) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.ae5) = return_slot %return.param +// CHECK:STDOUT: %t: ref @F.%T.binding.as_type (%T.binding.as_type.3e3) = bind_name t, %t.param +// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.a08) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.a08) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1317,30 +1317,30 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc9_6.2: %Ptr.type) { // CHECK:STDOUT: %T.loc9_6.1: %Ptr.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_6.1 (constants.%T.a46)] -// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_6.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.dc4)] -// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.851)] -// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.530)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.ae5)] -// CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.ec6)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3e3)] +// CHECK:STDOUT: %pattern_type.loc9_19: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_19 (constants.%pattern_type.608)] +// CHECK:STDOUT: %Ptr.impl_witness: = impl_witness file.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type) [symbolic = %Ptr.impl_witness (constants.%Ptr.impl_witness.b05)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type [symbolic = %ptr (constants.%ptr.a08)] +// CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.5bb)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.e69)] -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.43a)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.68e)] +// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.48a)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.9ef)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.38c)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.19c)] -// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.19c) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] -// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] +// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.6a5)] +// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.6a5) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.47b)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.848)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc9_22.1 (%T.as_type.dc4)) -> @F.%ptr (%ptr.ae5) { +// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type.3e3)) -> @F.%ptr (%ptr.a08) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.dc4) = name_ref t, %t -// CHECK:STDOUT: %addr: @F.%ptr (%ptr.ae5) = addr_of %t.ref -// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.19c) = impl_witness_access constants.%Copy.lookup_impl_witness.68e, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.6d5)] +// CHECK:STDOUT: %t.ref: ref @F.%T.binding.as_type (%T.binding.as_type.3e3) = name_ref t, %t +// CHECK:STDOUT: %addr: @F.%ptr (%ptr.a08) = addr_of %t.ref +// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.6a5) = impl_witness_access constants.%Copy.lookup_impl_witness.38c, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.47b)] // 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.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.8d6)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.848)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 -// CHECK:STDOUT: %.loc10_10.1: init @F.%ptr (%ptr.ae5) = call %bound_method.loc10_10.2(%addr) +// CHECK:STDOUT: %.loc10_10.1: init @F.%ptr (%ptr.a08) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %.loc10_10.1 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1357,12 +1357,12 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.da3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.dc4) { -// CHECK:STDOUT: %U.loc7_20.2 => constants.%T.as_type.dc4 -// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.ae5 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.483 -// CHECK:STDOUT: %require_complete => constants.%require_complete.c7f -// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.530 +// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.binding.as_type.3e3) { +// CHECK:STDOUT: %U.loc7_20.2 => constants.%T.binding.as_type.3e3 +// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.a08 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.833 +// CHECK:STDOUT: %require_complete => constants.%require_complete.8ad +// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.b05 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -1371,10 +1371,10 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.a46) { // CHECK:STDOUT: %T.loc9_6.1 => constants.%T.a46 -// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.dc4 -// CHECK:STDOUT: %pattern_type.loc9_19 => constants.%pattern_type.851 -// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.530 -// CHECK:STDOUT: %ptr => constants.%ptr.ae5 -// CHECK:STDOUT: %pattern_type.loc9_25 => constants.%pattern_type.ec6 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.3e3 +// CHECK:STDOUT: %pattern_type.loc9_19 => constants.%pattern_type.608 +// CHECK:STDOUT: %Ptr.impl_witness => constants.%Ptr.impl_witness.b05 +// CHECK:STDOUT: %ptr => constants.%ptr.a08 +// CHECK:STDOUT: %pattern_type.loc9_25 => constants.%pattern_type.5bb // 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 21995a9cb4279..8ec3df0b20fad 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.dac = struct_value () [concrete] // CHECK:STDOUT: %I.type.b13: type = facet_type <@I, @I(%T)> [symbolic] // CHECK:STDOUT: %Self: %I.type.b13 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a19: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.d83: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F, @I(%T) [symbolic] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T) [symbolic] @@ -115,17 +115,17 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @I.%I.type (%I.type.b13) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %I.F.decl: @I.%I.F.type (%I.F.type) = fn_decl @I.F [symbolic = @I.%I.F (constants.%I.F)] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.a19) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.a19) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.d83) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.d83) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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: %self.param: @I.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: %.loc4_36.2: @I.F.%I.type (%I.type.b13) = specific_constant @I.%Self.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @I.F.%I.type (%I.type.b13) = name_ref Self, %.loc4_36.2 [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc4_36.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc4_43.1: @I.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %I.F.decl [symbolic = %assoc0.loc4_43.2 (constants.%assoc0)] // CHECK:STDOUT: @@ -162,10 +162,10 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.b13)] // CHECK:STDOUT: %Self: @I.F.%I.type (%I.type.b13) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// 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.a19)] +// 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.d83)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc4_36.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { @@ -176,8 +176,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.b13 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_36.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a19 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -198,8 +198,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Self.dae: %I.type.b13 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %I.F.type.2ae: type = fn_type @I.F, @I(%T) [symbolic] // CHECK:STDOUT: %I.F.bb2: %I.F.type.2ae = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.dae [symbolic] -// CHECK:STDOUT: %pattern_type.a19: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.dae [symbolic] +// CHECK:STDOUT: %pattern_type.d83: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type.1e5: type = assoc_entity_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %assoc0.688: %I.assoc_type.1e5 = assoc_entity element0, imports.%Main.import_ref.479 [symbolic] // CHECK:STDOUT: %I.type.c61: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete] @@ -302,8 +302,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.b13)] // CHECK:STDOUT: %Self: @I.F.%I.type (%I.type.b13) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.dae)] -// 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.a19)] +// 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.d83)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -321,8 +321,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.b13 // CHECK:STDOUT: %Self => constants.%Self.dae -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a19 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) { @@ -341,7 +341,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%InInterfaceArgs // CHECK:STDOUT: %I.type => constants.%I.type.c61 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type => constants.%X +// CHECK:STDOUT: %Self.binding.as_type => constants.%X // CHECK:STDOUT: %pattern_type => constants.%pattern_type.019 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -362,8 +362,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Self.dae: %I.type.b13 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %I.F.type.2ae: type = fn_type @I.F, @I(%T) [symbolic] // CHECK:STDOUT: %I.F.bb2: %I.F.type.2ae = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.dae [symbolic] -// CHECK:STDOUT: %pattern_type.a19: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.dae [symbolic] +// CHECK:STDOUT: %pattern_type.d83: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type.1e5: type = assoc_entity_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %assoc0.429: %I.assoc_type.1e5 = assoc_entity element0, imports.%Main.import_ref.e54 [symbolic] // CHECK:STDOUT: %InInterfaceArgs: type = class_type @InInterfaceArgs [concrete] @@ -480,8 +480,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.b13)] // CHECK:STDOUT: %Self: @I.F.%I.type (%I.type.b13) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.dae)] -// 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.a19)] +// 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.d83)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -496,8 +496,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.b13 // CHECK:STDOUT: %Self => constants.%Self.dae -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a19 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) { @@ -528,8 +528,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Self.dae: %I.type.b13 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %I.F.type.2ae: type = fn_type @I.F, @I(%T) [symbolic] // CHECK:STDOUT: %I.F.bb2: %I.F.type.2ae = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.dae [symbolic] -// CHECK:STDOUT: %pattern_type.a19: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.dae [symbolic] +// CHECK:STDOUT: %pattern_type.d83: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type.1e5: type = assoc_entity_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %assoc0.688: %I.assoc_type.1e5 = assoc_entity element0, imports.%Main.import_ref.479 [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] @@ -651,8 +651,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.b13)] // CHECK:STDOUT: %Self: @I.F.%I.type (%I.type.b13) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.dae)] -// 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.a19)] +// 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.d83)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -680,8 +680,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.b13 // CHECK:STDOUT: %Self => constants.%Self.dae -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a19 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d83 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%X) { @@ -700,7 +700,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %I.type => constants.%I.type.95a // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type => constants.%C.23b +// CHECK:STDOUT: %Self.binding.as_type => constants.%C.23b // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e06 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -724,8 +724,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Self.dae: %I.type.b13 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %I.F.type.2ae: type = fn_type @I.F, @I(%T) [symbolic] // CHECK:STDOUT: %I.F.bb2: %I.F.type.2ae = struct_value () [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.dae [symbolic] -// CHECK:STDOUT: %pattern_type.a19: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.dae [symbolic] +// CHECK:STDOUT: %pattern_type.d83: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type.1e5: type = assoc_entity_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %assoc0.429: %I.assoc_type.1e5 = assoc_entity element0, imports.%Main.import_ref.e54 [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] @@ -862,8 +862,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.b13)] // CHECK:STDOUT: %Self: @I.F.%I.type (%I.type.b13) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.dae)] -// 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.a19)] +// 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.d83)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -888,8 +888,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.b13 // CHECK:STDOUT: %Self => constants.%Self.dae -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a19 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d83 // 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 606c29811e763..d15490cde0843 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 = bind_symbolic_name Self, 0 [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: %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: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -82,13 +82,13 @@ fn Call() { // CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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.param: @I.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.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc4_26.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -100,15 +100,15 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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: %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: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc4_26.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_26.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -122,8 +122,8 @@ fn Call() { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness file.%I.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete] @@ -192,8 +192,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(imports.%Main.import_ref.de2: %I.type) [from "i.carbon"] { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.d22)] +// 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.3f7)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -205,13 +205,13 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -280,8 +280,8 @@ fn Call() { // CHECK:STDOUT: %assoc0.3f3: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e03 [concrete] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %.dcb: type = fn_type_with_self_type %I.F.type, %I.facet [concrete] @@ -290,10 +290,10 @@ fn Call() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -364,11 +364,11 @@ fn Call() { // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method.loc9_8(%.loc9_7.3) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_7.4: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_7.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_7: = bound_method %.loc9_7.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_7.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9_7: = bound_method %.loc9_7.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc9_7.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_7(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc9_7(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -376,8 +376,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(imports.%Main.import_ref.de2: %I.type) [from "i.carbon"] { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.d22)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.3f7)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -386,7 +386,7 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a67 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/self_in_class.carbon b/toolchain/check/testdata/impl/self_in_class.carbon index 9e4a4e3d93af0..94c112ae4f47f 100644 --- a/toolchain/check/testdata/impl/self_in_class.carbon +++ b/toolchain/check/testdata/impl/self_in_class.carbon @@ -31,8 +31,8 @@ class A { // CHECK:STDOUT: constants { // CHECK:STDOUT: %DefaultConstructible.type: type = facet_type <@DefaultConstructible> [concrete] // CHECK:STDOUT: %Self: %DefaultConstructible.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.596: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.d52: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %DefaultConstructible.Make.type: type = fn_type @DefaultConstructible.Make [concrete] // CHECK:STDOUT: %DefaultConstructible.Make: %DefaultConstructible.Make.type = struct_value () [concrete] // CHECK:STDOUT: %DefaultConstructible.assoc_type: type = assoc_entity_type @DefaultConstructible [concrete] @@ -63,14 +63,14 @@ class A { // CHECK:STDOUT: interface @DefaultConstructible { // CHECK:STDOUT: %Self: %DefaultConstructible.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %DefaultConstructible.Make.decl: %DefaultConstructible.Make.type = fn_decl @DefaultConstructible.Make [concrete = constants.%DefaultConstructible.Make] { -// CHECK:STDOUT: %return.patt: @DefaultConstructible.Make.%pattern_type (%pattern_type.596) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.Make.%pattern_type (%pattern_type.596) = out_param_pattern %return.patt, call_param0 [concrete] +// CHECK:STDOUT: %return.patt: @DefaultConstructible.Make.%pattern_type (%pattern_type.d52) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.Make.%pattern_type (%pattern_type.d52) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: %DefaultConstructible.type = name_ref Self, @DefaultConstructible.%Self [symbolic = %Self (constants.%Self)] -// 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: type = converted %Self.ref, %Self.as_type.loc16_16.2 [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %return.param: ref @DefaultConstructible.Make.%Self.as_type.loc16_16.1 (%Self.as_type) = out_param call_param0 -// CHECK:STDOUT: %return: ref @DefaultConstructible.Make.%Self.as_type.loc16_16.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %.loc16: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %return.param: ref @DefaultConstructible.Make.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param0 +// CHECK:STDOUT: %return: ref @DefaultConstructible.Make.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %DefaultConstructible.assoc_type = assoc_entity element0, %DefaultConstructible.Make.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -121,10 +121,10 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @DefaultConstructible.Make(@DefaultConstructible.%Self: %DefaultConstructible.type) { // CHECK:STDOUT: %Self: %DefaultConstructible.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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: %pattern_type: type = pattern_type %Self.as_type.loc16_16.1 [symbolic = %pattern_type (constants.%pattern_type.596)] +// 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.d52)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> @DefaultConstructible.Make.%Self.as_type.loc16_16.1 (%Self.as_type); +// CHECK:STDOUT: fn() -> @DefaultConstructible.Make.%Self.binding.as_type (%Self.binding.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.DefaultConstructible.impl.Make() -> %return.param: %C { @@ -137,13 +137,13 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.Make(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.596 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d52 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.Make(constants.%DefaultConstructible.facet) { // CHECK:STDOUT: %Self => constants.%DefaultConstructible.facet -// CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/self_in_signature.carbon b/toolchain/check/testdata/impl/self_in_signature.carbon index cc910bcb80ce2..86073627e7c53 100644 --- a/toolchain/check/testdata/impl/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/self_in_signature.carbon @@ -45,8 +45,8 @@ impl D as SelfNested { // CHECK:STDOUT: constants { // CHECK:STDOUT: %UseSelf.type: type = facet_type <@UseSelf> [concrete] // CHECK:STDOUT: %Self.617: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.f06: type = facet_access_type %Self.617 [symbolic] -// CHECK:STDOUT: %pattern_type.776: type = pattern_type %Self.as_type.f06 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.e66: type = symbolic_binding_type Self, 0, %Self.617 [symbolic] +// CHECK:STDOUT: %pattern_type.d1e: type = pattern_type %Self.binding.as_type.e66 [symbolic] // CHECK:STDOUT: %UseSelf.F.type: type = fn_type @UseSelf.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %UseSelf.F: %UseSelf.F.type = struct_value () [concrete] @@ -70,12 +70,12 @@ impl D as SelfNested { // CHECK:STDOUT: %D.val: %D = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] // CHECK:STDOUT: %Self.3de: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.b27: type = facet_access_type %Self.3de [symbolic] -// CHECK:STDOUT: %ptr.95d: type = ptr_type %Self.as_type.b27 [symbolic] -// CHECK:STDOUT: %struct_type.x.y.f91: type = struct_type {.x: %Self.as_type.b27, .y: %empty_tuple.type} [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.9fa: type = symbolic_binding_type Self, 0, %Self.3de [symbolic] +// CHECK:STDOUT: %ptr.7fb: type = ptr_type %Self.binding.as_type.9fa [symbolic] +// CHECK:STDOUT: %struct_type.x.y.4a0: type = struct_type {.x: %Self.binding.as_type.9fa, .y: %empty_tuple.type} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.type.13e: type = tuple_type (%ptr.95d, %struct_type.x.y.f91) [symbolic] -// CHECK:STDOUT: %pattern_type.2fd: type = pattern_type %tuple.type.13e [symbolic] +// CHECK:STDOUT: %tuple.type.19d: type = tuple_type (%ptr.7fb, %struct_type.x.y.4a0) [symbolic] +// CHECK:STDOUT: %pattern_type.8d3: type = pattern_type %tuple.type.19d [symbolic] // CHECK:STDOUT: %SelfNested.F.type: type = fn_type @SelfNested.F [concrete] // CHECK:STDOUT: %SelfNested.F: %SelfNested.F.type = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete] @@ -138,32 +138,32 @@ impl D as SelfNested { // CHECK:STDOUT: interface @UseSelf { // CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.617] // CHECK:STDOUT: %UseSelf.F.decl: %UseSelf.F.type = fn_decl @UseSelf.F [concrete = constants.%UseSelf.F] { -// CHECK:STDOUT: %self.patt: @UseSelf.F.%pattern_type (%pattern_type.776) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @UseSelf.F.%pattern_type (%pattern_type.776) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %x.patt: @UseSelf.F.%pattern_type (%pattern_type.776) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @UseSelf.F.%pattern_type (%pattern_type.776) = value_param_pattern %x.patt, call_param1 [concrete] -// CHECK:STDOUT: %return.patt: @UseSelf.F.%pattern_type (%pattern_type.776) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @UseSelf.F.%pattern_type (%pattern_type.776) = out_param_pattern %return.patt, call_param2 [concrete] +// CHECK:STDOUT: %self.patt: @UseSelf.F.%pattern_type (%pattern_type.d1e) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @UseSelf.F.%pattern_type (%pattern_type.d1e) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @UseSelf.F.%pattern_type (%pattern_type.d1e) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @UseSelf.F.%pattern_type (%pattern_type.d1e) = value_param_pattern %x.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @UseSelf.F.%pattern_type (%pattern_type.d1e) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @UseSelf.F.%pattern_type (%pattern_type.d1e) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.617)] -// 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.f06)] -// CHECK:STDOUT: %.loc16_32: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.f06)] -// CHECK:STDOUT: %self.param: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06) = 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.f06)] { +// 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.e66)] +// CHECK:STDOUT: %.loc16_32: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e66)] +// CHECK:STDOUT: %self.param: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66) = 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.e66)] { // CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.617)] -// 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.f06)] -// 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.f06)] +// 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.e66)] +// 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.e66)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06) = bind_name self, %self.param -// CHECK:STDOUT: %x.param: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06) = 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.f06)] { +// CHECK:STDOUT: %self: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66) = bind_name self, %self.param +// CHECK:STDOUT: %x.param: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66) = 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.e66)] { // CHECK:STDOUT: %Self.ref.loc16_23: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.617)] -// 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.f06)] -// 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.f06)] +// 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.e66)] +// 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.e66)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06) = bind_name x, %x.param -// CHECK:STDOUT: %return.param: ref @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06) = out_param call_param2 -// CHECK:STDOUT: %return: ref @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06) = return_slot %return.param +// CHECK:STDOUT: %x: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66) = bind_name x, %x.param +// CHECK:STDOUT: %return.param: ref @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66) = out_param call_param2 +// CHECK:STDOUT: %return: ref @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %UseSelf.F.decl [concrete = constants.%assoc0.24c] // CHECK:STDOUT: @@ -176,25 +176,25 @@ impl D as SelfNested { // CHECK:STDOUT: interface @SelfNested { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.3de] // CHECK:STDOUT: %SelfNested.F.decl: %SelfNested.F.type = fn_decl @SelfNested.F [concrete = constants.%SelfNested.F] { -// CHECK:STDOUT: %x.patt: @SelfNested.F.%pattern_type (%pattern_type.2fd) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @SelfNested.F.%pattern_type (%pattern_type.2fd) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.F.%pattern_type (%pattern_type.8d3) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @SelfNested.F.%pattern_type (%pattern_type.8d3) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: @SelfNested.F.%tuple.type (%tuple.type.13e) = value_param call_param0 -// CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.13e)] { +// CHECK:STDOUT: %x.param: @SelfNested.F.%tuple.type (%tuple.type.19d) = value_param call_param0 +// CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.19d)] { // CHECK:STDOUT: %Self.ref.loc32_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3de)] -// 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.b27)] -// 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.b27)] -// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.1 (constants.%ptr.95d)] +// 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.9fa)] +// 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.9fa)] +// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.1 (constants.%ptr.7fb)] // CHECK:STDOUT: %Self.ref.loc32_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.3de)] -// 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.b27)] -// 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.b27)] +// 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.9fa)] +// 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.9fa)] // CHECK:STDOUT: %.loc32_35.1: %empty_tuple.type = tuple_literal () // 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.F.%Self.as_type.loc32_16.1 (%Self.as_type.b27), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.f91)] +// CHECK:STDOUT: %struct_type.x.y.loc32_36.2: type = struct_type {.x: @SelfNested.F.%Self.binding.as_type (%Self.binding.as_type.9fa), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.4a0)] // CHECK:STDOUT: %.loc32_37.2: %tuple.type.24b = tuple_literal (%ptr.loc32_16.2, %struct_type.x.y.loc32_36.2) -// CHECK:STDOUT: %.loc32_37.3: type = converted %.loc32_37.2, constants.%tuple.type.13e [symbolic = %tuple.type (constants.%tuple.type.13e)] +// CHECK:STDOUT: %.loc32_37.3: type = converted %.loc32_37.2, constants.%tuple.type.19d [symbolic = %tuple.type (constants.%tuple.type.19d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @SelfNested.F.%tuple.type (%tuple.type.13e) = bind_name x, %x.param +// CHECK:STDOUT: %x: @SelfNested.F.%tuple.type (%tuple.type.19d) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.F.decl [concrete = constants.%assoc0.beb] // CHECK:STDOUT: @@ -322,10 +322,10 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @UseSelf.F(@UseSelf.%Self: %UseSelf.type) { // CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.617)] -// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.f06)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.776)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e66)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.d1e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06), %x.param: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06)) -> @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.f06); +// CHECK:STDOUT: fn(%self.param: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66), %x.param: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66)) -> @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type.e66); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.UseSelf.impl.F(%self.param: %C, %x.param: %C) -> %return.param: %C { @@ -346,13 +346,13 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @SelfNested.F(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.3de)] -// CHECK:STDOUT: %Self.as_type.loc32_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.b27)] -// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %Self.as_type.loc32_16.1 [symbolic = %ptr.loc32_16.1 (constants.%ptr.95d)] -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @SelfNested.F.%Self.as_type.loc32_16.1 (%Self.as_type.b27), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.f91)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.13e)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.2fd)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.9fa)] +// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %Self.binding.as_type [symbolic = %ptr.loc32_16.1 (constants.%ptr.7fb)] +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @SelfNested.F.%Self.binding.as_type (%Self.binding.as_type.9fa), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.4a0)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.19d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.8d3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @SelfNested.F.%tuple.type (%tuple.type.13e)); +// CHECK:STDOUT: fn(%x.param: @SelfNested.F.%tuple.type (%tuple.type.19d)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.SelfNested.impl.F(%x.param: %tuple.type.a17); @@ -361,34 +361,34 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.F(constants.%Self.617) { // CHECK:STDOUT: %Self => constants.%Self.617 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.f06 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.776 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.e66 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d1e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.F(constants.%UseSelf.facet.0a1) { // CHECK:STDOUT: %Self => constants.%UseSelf.facet.0a1 -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.F(constants.%UseSelf.facet.85d) { // CHECK:STDOUT: %Self => constants.%UseSelf.facet.85d -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%D +// CHECK:STDOUT: %Self.binding.as_type => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.510 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.F(constants.%Self.3de) { // CHECK:STDOUT: %Self => constants.%Self.3de -// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%Self.as_type.b27 -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.95d -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.f91 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.13e -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2fd +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.9fa +// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.7fb +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.4a0 +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.19d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.8d3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.F(constants.%SelfNested.facet.60c) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.60c -// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.019 // CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.2f0 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a17 @@ -397,7 +397,7 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.F(constants.%SelfNested.facet.86f) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.86f -// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%D +// CHECK:STDOUT: %Self.binding.as_type => constants.%D // CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.19c // CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.527 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a5f diff --git a/toolchain/check/testdata/impl/use_assoc_const.carbon b/toolchain/check/testdata/impl/use_assoc_const.carbon index f517a68bf15b8..5082d6dff0ec4 100644 --- a/toolchain/check/testdata/impl/use_assoc_const.carbon +++ b/toolchain/check/testdata/impl/use_assoc_const.carbon @@ -292,8 +292,8 @@ fn F() { // CHECK:STDOUT: %Self.bf6: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0.411: %J.assoc_type = assoc_entity element0, @J.%U [concrete] -// CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] -// CHECK:STDOUT: %pattern_type.8ba: type = pattern_type %Self.as_type.4e7 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.09d: type = symbolic_binding_type Self, 0, %Self.bf6 [symbolic] +// CHECK:STDOUT: %pattern_type.a23: type = pattern_type %Self.binding.as_type.09d [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.080: = lookup_impl_witness %Self.bf6, @J [symbolic] // CHECK:STDOUT: %impl.elem0.312: type = impl_witness_access %J.lookup_impl_witness.080, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %impl.elem0.312 [symbolic] @@ -302,7 +302,7 @@ fn F() { // CHECK:STDOUT: %J.F: %J.F.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1.572: %J.assoc_type = assoc_entity element1, @J.%J.F.decl [concrete] // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -394,8 +394,8 @@ fn F() { // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.088, element0 [symbolic_self = constants.%impl.elem0.338] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -431,8 +431,8 @@ fn F() { // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.088, element0 [symbolic_self = constants.%impl.elem0.338] // CHECK:STDOUT: %C.ref.loc21_24: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc21_13: type = where_expr %.Self [concrete = constants.%J_where.type.b0a] { @@ -451,8 +451,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.%U [concrete = constants.%assoc0.411] // CHECK:STDOUT: } // CHECK:STDOUT: %J.F.decl: %J.F.type = fn_decl @J.F [concrete = constants.%J.F] { -// CHECK:STDOUT: %self.patt: @J.F.%pattern_type.loc5_8 (%pattern_type.8ba) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.F.%pattern_type.loc5_8 (%pattern_type.8ba) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @J.F.%pattern_type.loc5_8 (%pattern_type.a23) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @J.F.%pattern_type.loc5_8 (%pattern_type.a23) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %u.patt: @J.F.%pattern_type.loc5_20 (%pattern_type.9d9) = binding_pattern u [concrete] // CHECK:STDOUT: %u.param_patt: @J.F.%pattern_type.loc5_20 (%pattern_type.9d9) = value_param_pattern %u.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @J.F.%pattern_type.loc5_20 (%pattern_type.9d9) = return_slot_pattern [concrete] @@ -460,13 +460,13 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.080, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312)] // CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312)] -// CHECK:STDOUT: %self.param: @J.F.%Self.as_type.loc5_14.1 (%Self.as_type.4e7) = 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.4e7)] { +// CHECK:STDOUT: %self.param: @J.F.%Self.binding.as_type (%Self.binding.as_type.09d) = 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.09d)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.bf6)] -// 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.4e7)] -// 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.4e7)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.F.%Self.as_type.loc5_14.1 (%Self.as_type.4e7) = bind_name self, %self.param +// CHECK:STDOUT: %self: @J.F.%Self.binding.as_type (%Self.binding.as_type.09d) = bind_name self, %self.param // CHECK:STDOUT: %u.param: @J.F.%impl.elem0.loc5_23.1 (%impl.elem0.312) = value_param call_param1 // CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312)] { // CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.080, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312)] @@ -557,13 +557,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.F(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.bf6)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.4e7)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.8ba)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] +// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.a23)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.080)] // 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.312)] // CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.9d9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.F.%Self.as_type.loc5_14.1 (%Self.as_type.4e7), %u.param: @J.F.%impl.elem0.loc5_23.1 (%impl.elem0.312)) -> @J.F.%impl.elem0.loc5_23.1 (%impl.elem0.312); +// CHECK:STDOUT: fn(%self.param: @J.F.%Self.binding.as_type (%Self.binding.as_type.09d), %u.param: @J.F.%impl.elem0.loc5_23.1 (%impl.elem0.312)) -> @J.F.%impl.elem0.loc5_23.1 (%impl.elem0.312); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.J.impl.F(%self.param: %empty_tuple.type, %u.param: %i32) -> %i32 { @@ -611,8 +611,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.4e7 -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.8ba +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.09d +// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.a23 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.080 // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.312 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.9d9 @@ -622,7 +622,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%J.facet.d5a) { // CHECK:STDOUT: %Self => constants.%J.facet.d5a -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.ad3 // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%i32 @@ -631,7 +631,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%J.facet.5f3) { // CHECK:STDOUT: %Self => constants.%J.facet.5f3 -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.c48 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.e7d // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%C @@ -655,7 +655,7 @@ fn F() { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -735,8 +735,8 @@ fn F() { // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.088, element0 [symbolic_self = constants.%impl.elem0.338] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -891,20 +891,20 @@ fn F() { // CHECK:STDOUT: %Self.bf6: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0.411: %J.assoc_type = assoc_entity element0, @J.%U [concrete] -// CHECK:STDOUT: %Self.as_type.4e7: type = facet_access_type %Self.bf6 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.09d: type = symbolic_binding_type Self, 0, %Self.bf6 [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.1: = lookup_impl_witness %Self.bf6, @J [symbolic] // CHECK:STDOUT: %impl.elem0.312582.1: type = impl_witness_access %J.lookup_impl_witness.0802bc.1, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.1: type = pattern_type %impl.elem0.312582.1 [symbolic] // CHECK:STDOUT: %J.F.type: type = fn_type @J.F [concrete] // CHECK:STDOUT: %J.F: %J.F.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1.572: %J.assoc_type = assoc_entity element1, @J.%J.F.decl [concrete] -// CHECK:STDOUT: %pattern_type.8ba9f0.1: type = pattern_type %Self.as_type.4e7 [symbolic] +// CHECK:STDOUT: %pattern_type.a236ae.1: type = pattern_type %Self.binding.as_type.09d [symbolic] // CHECK:STDOUT: %J.G.type: type = fn_type @J.G [concrete] // CHECK:STDOUT: %J.G: %J.G.type = struct_value () [concrete] // CHECK:STDOUT: %assoc2: %J.assoc_type = assoc_entity element2, @J.%J.G.decl [concrete] // CHECK:STDOUT: %E: type = class_type @E [concrete] // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -976,15 +976,15 @@ fn F() { // CHECK:STDOUT: %.Self.659: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %J.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.84b: type = pattern_type %J.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.8ba9f0.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.a236ae.2: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.2: = lookup_impl_witness %T, @J [symbolic] // CHECK:STDOUT: %impl.elem0.312582.2: type = impl_witness_access %J.lookup_impl_witness.0802bc.2, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.2: type = pattern_type %impl.elem0.312582.2 [symbolic] // CHECK:STDOUT: %GenericCallF.type: type = fn_type @GenericCallF [concrete] // CHECK:STDOUT: %GenericCallF: %GenericCallF.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.73c: = require_complete_type %impl.elem0.312582.2 [symbolic] -// CHECK:STDOUT: %require_complete.8dd: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.bb1: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %.2b8: type = fn_type_with_self_type %J.F.type, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.2b8 = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.F(%T) [symbolic] @@ -1033,8 +1033,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %GenericCallF.decl: %GenericCallF.type = fn_decl @GenericCallF [concrete = constants.%GenericCallF] { // CHECK:STDOUT: %T.patt: %pattern_type.84b = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallF.%pattern_type.loc28_24 (%pattern_type.8ba9f0.2) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallF.%pattern_type.loc28_24 (%pattern_type.8ba9f0.2) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallF.%pattern_type.loc28_24 (%pattern_type.a236ae.2) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallF.%pattern_type.loc28_24 (%pattern_type.a236ae.2) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: %u.patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.9d9270.2) = binding_pattern u [concrete] // CHECK:STDOUT: %u.param_patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.9d9270.2) = value_param_pattern %u.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @GenericCallF.%pattern_type.loc28_30 (%pattern_type.9d9270.2) = return_slot_pattern [concrete] @@ -1042,27 +1042,27 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc28_41: %J.type = name_ref T, %T.loc28_17.2 [symbolic = %T.loc28_17.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc28_42: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: type = converted %T.ref.loc28_41, %T.as_type.loc28_42 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc28_41, %T.as_type.loc28_42 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc28_42: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.312582.2)] // CHECK:STDOUT: %.loc28_21: type = splice_block %J.ref [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.659] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc28_17.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc28_17.1 (constants.%T)] -// 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.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.ref.loc28_27: %J.type = name_ref T, %T.loc28_17.2 [symbolic = %T.loc28_17.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %t: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @GenericCallF.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) = 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.312582.2)] { // CHECK:STDOUT: %T.ref.loc28_33: %J.type = name_ref T, %T.loc28_17.2 [symbolic = %T.loc28_17.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc28_34: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: %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: %impl.elem0.loc28_34.2: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.312582.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %u: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) = bind_name u, %u.param @@ -1109,8 +1109,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %J.F.decl [concrete = constants.%assoc1.572] // CHECK:STDOUT: %J.G.decl: %J.G.type = fn_decl @J.G [concrete = constants.%J.G] { -// CHECK:STDOUT: %self.patt: @J.G.%pattern_type.loc6_8 (%pattern_type.8ba9f0.1) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.G.%pattern_type.loc6_8 (%pattern_type.8ba9f0.1) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @J.G.%pattern_type.loc6_8 (%pattern_type.a236ae.1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @J.G.%pattern_type.loc6_8 (%pattern_type.a236ae.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %v.patt: @J.G.%pattern_type.loc6_20 (%pattern_type.9d9270.1) = binding_pattern v [concrete] // CHECK:STDOUT: %v.param_patt: @J.G.%pattern_type.loc6_20 (%pattern_type.9d9270.1) = value_param_pattern %v.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @J.G.%pattern_type.loc6_20 (%pattern_type.9d9270.1) = return_slot_pattern [concrete] @@ -1118,13 +1118,13 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc6_29: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.1, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.312582.1)] // CHECK:STDOUT: %U.ref.loc6_29: type = name_ref U, %impl.elem0.loc6_29 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.312582.1)] -// CHECK:STDOUT: %self.param: @J.G.%Self.as_type.loc6_14.1 (%Self.as_type.4e7) = 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.4e7)] { +// CHECK:STDOUT: %self.param: @J.G.%Self.binding.as_type (%Self.binding.as_type.09d) = 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.09d)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.bf6)] -// 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.4e7)] -// 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.4e7)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.G.%Self.as_type.loc6_14.1 (%Self.as_type.4e7) = bind_name self, %self.param +// CHECK:STDOUT: %self: @J.G.%Self.binding.as_type (%Self.binding.as_type.09d) = bind_name self, %self.param // CHECK:STDOUT: %v.param: @J.G.%impl.elem0.loc6_23.1 (%impl.elem0.312582.1) = value_param call_param1 // CHECK:STDOUT: %.loc6_23: type = splice_block %U.ref.loc6_23 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.312582.1)] { // CHECK:STDOUT: %impl.elem0.loc6_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.1, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.312582.1)] @@ -1202,8 +1202,8 @@ fn F() { // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.088, element0 [symbolic_self = constants.%impl.elem0.338] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -1237,13 +1237,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.G(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.bf6)] -// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.4e7)] -// CHECK:STDOUT: %pattern_type.loc6_8: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type.loc6_8 (constants.%pattern_type.8ba9f0.1)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.09d)] +// CHECK:STDOUT: %pattern_type.loc6_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_8 (constants.%pattern_type.a236ae.1)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.0802bc.1)] // 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.312582.1)] // CHECK:STDOUT: %pattern_type.loc6_20: type = pattern_type %impl.elem0.loc6_23.1 [symbolic = %pattern_type.loc6_20 (constants.%pattern_type.9d9270.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.G.%Self.as_type.loc6_14.1 (%Self.as_type.4e7), %v.param: @J.G.%impl.elem0.loc6_23.1 (%impl.elem0.312582.1)) -> @J.G.%impl.elem0.loc6_23.1 (%impl.elem0.312582.1); +// CHECK:STDOUT: fn(%self.param: @J.G.%Self.binding.as_type (%Self.binding.as_type.09d), %v.param: @J.G.%impl.elem0.loc6_23.1 (%impl.elem0.312582.1)) -> @J.G.%impl.elem0.loc6_23.1 (%impl.elem0.312582.1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @E.as.J.impl.F(%u.param: %i32) -> %i32 { @@ -1390,22 +1390,22 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericCallF(%T.loc28_17.2: %J.type) { // CHECK:STDOUT: %T.loc28_17.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc28_17.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc28_27.1: type = facet_access_type %T.loc28_17.1 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc28_24: type = pattern_type %T.as_type.loc28_27.1 [symbolic = %pattern_type.loc28_24 (constants.%pattern_type.8ba9f0.2)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc28_17.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc28_24: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc28_24 (constants.%pattern_type.a236ae.2)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc28_17.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.0802bc.2)] // 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.312582.2)] // CHECK:STDOUT: %pattern_type.loc28_30: type = pattern_type %impl.elem0.loc28_34.1 [symbolic = %pattern_type.loc28_30 (constants.%pattern_type.9d9270.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc28_38: = require_complete_type %impl.elem0.loc28_34.1 [symbolic = %require_complete.loc28_38 (constants.%require_complete.73c)] -// CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.as_type.loc28_27.1 [symbolic = %require_complete.loc28_25 (constants.%require_complete.8dd)] +// CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc28_25 (constants.%require_complete.bb1)] // CHECK:STDOUT: %.loc29_11: type = fn_type_with_self_type constants.%J.F.type, %T.loc28_17.1 [symbolic = %.loc29_11 (constants.%.2b8)] // CHECK:STDOUT: %impl.elem1.loc29_11.2: @GenericCallF.%.loc29_11 (%.2b8) = 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.F(%T.loc28_17.1) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// 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.312582.2)) -> %return.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) { +// CHECK:STDOUT: fn(%t.param: @GenericCallF.%T.binding.as_type (%T.binding.as_type), %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2)) -> %return.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallF.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1.572] // CHECK:STDOUT: %impl.elem1.loc29_11.1: @GenericCallF.%.loc29_11 (%.2b8) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.312582.2) = name_ref u, %u @@ -1448,8 +1448,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.G(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type.4e7 -// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.8ba9f0.1 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.09d +// CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.a236ae.1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.1 // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%impl.elem0.312582.1 // CHECK:STDOUT: %pattern_type.loc6_20 => constants.%pattern_type.9d9270.1 @@ -1466,7 +1466,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.G(constants.%J.facet) { // CHECK:STDOUT: %Self => constants.%J.facet -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%E +// CHECK:STDOUT: %Self.binding.as_type => constants.%E // CHECK:STDOUT: %pattern_type.loc6_8 => constants.%pattern_type.a4a // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%i32 @@ -1477,8 +1477,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallF(constants.%T) { // CHECK:STDOUT: %T.loc28_17.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc28_27.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.8ba9f0.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.a236ae.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.2 // CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%impl.elem0.312582.2 // CHECK:STDOUT: %pattern_type.loc28_30 => constants.%pattern_type.9d9270.2 @@ -1493,7 +1493,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallF(constants.%J.facet) { // CHECK:STDOUT: %T.loc28_17.1 => constants.%J.facet -// CHECK:STDOUT: %T.as_type.loc28_27.1 => constants.%E +// CHECK:STDOUT: %T.binding.as_type => constants.%E // CHECK:STDOUT: %pattern_type.loc28_24 => constants.%pattern_type.a4a // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%i32 @@ -1512,8 +1512,8 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.7ee: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %I.Op.type: type = fn_type @I.Op [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.Op: %I.Op.type = struct_value () [concrete] @@ -1538,8 +1538,8 @@ fn F() { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %J.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.84b: type = pattern_type %J.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.8ba: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.a23: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.2: = lookup_impl_witness %T, @J [symbolic] // CHECK:STDOUT: %impl.elem0.82c3d7.2: %facet_type = impl_witness_access %J.lookup_impl_witness.0802bc.2, element0 [symbolic] // CHECK:STDOUT: %as_type.2a6e07.2: type = facet_access_type %impl.elem0.82c3d7.2 [symbolic] @@ -1547,7 +1547,7 @@ fn F() { // CHECK:STDOUT: %GenericResult.type: type = fn_type @GenericResult [concrete] // CHECK:STDOUT: %GenericResult: %GenericResult.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.12e: = require_complete_type %as_type.2a6e07.2 [symbolic] -// CHECK:STDOUT: %require_complete.8dd: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.bb1: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %.2b8: type = fn_type_with_self_type %J.F.type, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.2b8 = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.74c: = specific_impl_function %impl.elem1, @J.F(%T) [symbolic] @@ -1589,8 +1589,8 @@ 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.84b = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericResult.%pattern_type.loc12_25 (%pattern_type.8ba) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericResult.%pattern_type.loc12_25 (%pattern_type.8ba) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @GenericResult.%pattern_type.loc12_25 (%pattern_type.a23) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericResult.%pattern_type.loc12_25 (%pattern_type.a23) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: %u.patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.cfc624.2) = binding_pattern u [concrete] // CHECK:STDOUT: %u.param_patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.cfc624.2) = value_param_pattern %u.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @GenericResult.%pattern_type.loc12_31 (%pattern_type.cfc624.2) = return_slot_pattern [concrete] @@ -1598,8 +1598,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12_42: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc12_43: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.d3b] -// 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.1: type = converted %T.ref.loc12_42, %T.as_type.loc12_43 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// 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.1: type = converted %T.ref.loc12_42, %T.as_type.loc12_43 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc12_43: %facet_type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.82c3d7.2)] // CHECK:STDOUT: %as_type.loc12_43: type = facet_access_type %impl.elem0.loc12_43 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] // CHECK:STDOUT: %.loc12_43.2: type = converted %impl.elem0.loc12_43, %as_type.loc12_43 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] @@ -1608,19 +1608,19 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc12_18.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_18.1 (constants.%T)] -// 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.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.ref.loc12_28: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %t: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @GenericResult.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: %u.param: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = value_param call_param1 // CHECK:STDOUT: %.loc12_35.1: type = splice_block %.loc12_35.3 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] { // CHECK:STDOUT: %T.ref.loc12_34: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc12_35: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.d3b] -// 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: %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: %impl.elem0.loc12_35.2: %facet_type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.82c3d7.2)] // 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.2a6e07.2)] // CHECK:STDOUT: %.loc12_35.3: type = converted %impl.elem0.loc12_35.2, %as_type.loc12_35.2 [symbolic = %as_type.loc12_35.1 (constants.%as_type.2a6e07.2)] @@ -1634,32 +1634,32 @@ fn F() { // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.7ee] // CHECK:STDOUT: %I.Op.decl: %I.Op.type = fn_decl @I.Op [concrete = constants.%I.Op] { -// CHECK:STDOUT: %self.patt: @I.Op.%pattern_type (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.Op.%pattern_type (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %b.patt: @I.Op.%pattern_type (%pattern_type.d22) = binding_pattern b [concrete] -// CHECK:STDOUT: %b.param_patt: @I.Op.%pattern_type (%pattern_type.d22) = value_param_pattern %b.patt, call_param1 [concrete] -// CHECK:STDOUT: %return.patt: @I.Op.%pattern_type (%pattern_type.d22) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @I.Op.%pattern_type (%pattern_type.d22) = out_param_pattern %return.patt, call_param2 [concrete] +// CHECK:STDOUT: %self.patt: @I.Op.%pattern_type (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.Op.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %b.patt: @I.Op.%pattern_type (%pattern_type.3f7) = binding_pattern b [concrete] +// CHECK:STDOUT: %b.param_patt: @I.Op.%pattern_type (%pattern_type.3f7) = value_param_pattern %b.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @I.Op.%pattern_type (%pattern_type.3f7) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @I.Op.%pattern_type (%pattern_type.3f7) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc4_33: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// CHECK:STDOUT: %.loc4_33: type = converted %Self.ref.loc4_33, %Self.as_type.loc4_33 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %self.param: @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67) = 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.a67)] { +// 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.1b7)] +// CHECK:STDOUT: %.loc4_33: type = converted %Self.ref.loc4_33, %Self.as_type.loc4_33 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %self.param: @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7) = 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.1b7)] { // CHECK:STDOUT: %Self.ref.loc4_15: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// 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.a67)] +// 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.1b7)] +// 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.1b7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67) = bind_name self, %self.param -// CHECK:STDOUT: %b.param: @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67) = 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.a67)] { +// CHECK:STDOUT: %self: @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7) = bind_name self, %self.param +// CHECK:STDOUT: %b.param: @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7) = 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.1b7)] { // CHECK:STDOUT: %Self.ref.loc4_24: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// 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.a67)] +// 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.1b7)] +// 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.1b7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67) = bind_name b, %b.param -// CHECK:STDOUT: %return.param: ref @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67) = out_param call_param2 -// CHECK:STDOUT: %return: ref @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67) = return_slot %return.param +// CHECK:STDOUT: %b: @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7) = bind_name b, %b.param +// CHECK:STDOUT: %return.param: ref @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7) = out_param call_param2 +// CHECK:STDOUT: %return: ref @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.Op.decl [concrete = constants.%assoc0.ea8] // CHECK:STDOUT: @@ -1711,10 +1711,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.Op(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.d22)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.3f7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67), %b.param: @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67)) -> @I.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a67); +// CHECK:STDOUT: fn(%self.param: @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7), %b.param: @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7)) -> @I.Op.%Self.binding.as_type (%Self.binding.as_type.1b7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.F(@J.%Self: %J.type) { @@ -1729,8 +1729,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericResult(%T.loc12_18.2: %J.type) { // CHECK:STDOUT: %T.loc12_18.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc12_18.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc12_28.1: type = facet_access_type %T.loc12_18.1 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc12_25: type = pattern_type %T.as_type.loc12_28.1 [symbolic = %pattern_type.loc12_25 (constants.%pattern_type.8ba)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_18.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc12_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc12_25 (constants.%pattern_type.a23)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc12_18.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.0802bc.2)] // 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.82c3d7.2)] // 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.2a6e07.2)] @@ -1738,7 +1738,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc12_39: = require_complete_type %as_type.loc12_35.1 [symbolic = %require_complete.loc12_39 (constants.%require_complete.12e)] -// CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.as_type.loc12_28.1 [symbolic = %require_complete.loc12_26 (constants.%require_complete.8dd)] +// CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc12_26 (constants.%require_complete.bb1)] // CHECK:STDOUT: %.loc13_11: type = fn_type_with_self_type constants.%J.F.type, %T.loc12_18.1 [symbolic = %.loc13_11 (constants.%.2b8)] // CHECK:STDOUT: %impl.elem1.loc13_11.2: @GenericResult.%.loc13_11 (%.2b8) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc13_11.2: = specific_impl_function %impl.elem1.loc13_11.2, @J.F(%T.loc12_18.1) [symbolic = %specific_impl_fn.loc13_11.2 (constants.%specific_impl_fn.74c)] @@ -1755,9 +1755,9 @@ fn F() { // CHECK:STDOUT: %ptr: type = ptr_type %as_type.loc12_35.1 [symbolic = %ptr (constants.%ptr.d16)] // CHECK:STDOUT: %require_complete.loc13: = require_complete_type %ptr [symbolic = %require_complete.loc13 (constants.%require_complete.0ed)] // CHECK:STDOUT: -// 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.2a6e07.2)) -> %return.param: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) { +// CHECK:STDOUT: fn(%t.param: @GenericResult.%T.binding.as_type (%T.binding.as_type), %u.param: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2)) -> %return.param: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericResult.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref.loc13_11: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_11.1: @GenericResult.%.loc13_11 (%.2b8) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref.loc13_14: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = name_ref u, %u @@ -1772,8 +1772,8 @@ fn F() { // CHECK:STDOUT: %bound_method.loc13_16: = bound_method %.loc13_15.4, %impl.elem0.loc13_16.1 // CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc12_18.2 [symbolic = %T.loc12_18.1 (constants.%T)] // CHECK:STDOUT: %F.ref.loc13_25: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] -// 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: %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: %impl.elem1.loc13_25: @GenericResult.%.loc13_11 (%.2b8) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref.loc13_28: @GenericResult.%as_type.loc12_35.1 (%as_type.2a6e07.2) = name_ref u, %u // CHECK:STDOUT: %.loc13_29.1: %facet_type = converted constants.%as_type.2a6e07.2, constants.%impl.elem0.82c3d7.2 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.82c3d7.2)] @@ -1813,8 +1813,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.Op(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type.a67 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self.bf6) {} @@ -1831,8 +1831,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericResult(constants.%T) { // CHECK:STDOUT: %T.loc12_18.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc12_28.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc12_25 => constants.%pattern_type.8ba +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc12_25 => constants.%pattern_type.a23 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.2 // CHECK:STDOUT: %impl.elem0.loc12_35.1 => constants.%impl.elem0.82c3d7.2 // CHECK:STDOUT: %as_type.loc12_35.1 => constants.%as_type.2a6e07.2 @@ -1849,7 +1849,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.Op(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%as_type.2a6e07.2 +// CHECK:STDOUT: %Self.binding.as_type => constants.%as_type.2a6e07.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cfc624.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1860,8 +1860,8 @@ fn F() { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.%U [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.8ba9f0.1: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.a236ae.1: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.1: = lookup_impl_witness %Self, @J [symbolic] // CHECK:STDOUT: %impl.elem0.312582.1: type = impl_witness_access %J.lookup_impl_witness.0802bc.1, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.1: type = pattern_type %impl.elem0.312582.1 [symbolic] @@ -1872,15 +1872,15 @@ fn F() { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %J.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.84b: type = pattern_type %J.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.8ba9f0.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.a236ae.2: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.2: = lookup_impl_witness %T, @J [symbolic] // CHECK:STDOUT: %impl.elem0.312582.2: type = impl_witness_access %J.lookup_impl_witness.0802bc.2, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9d9270.2: type = pattern_type %impl.elem0.312582.2 [symbolic] // CHECK:STDOUT: %GenericCallInterfaceQualified.type: type = fn_type @GenericCallInterfaceQualified [concrete] // CHECK:STDOUT: %GenericCallInterfaceQualified: %GenericCallInterfaceQualified.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.73c: = require_complete_type %impl.elem0.312582.2 [symbolic] -// CHECK:STDOUT: %require_complete.8dd: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.bb1: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %.7f3: type = fn_type_with_self_type %J.G.type, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.7f3 = impl_witness_access %J.lookup_impl_witness.0802bc.2, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.G(%T) [symbolic] @@ -1903,8 +1903,8 @@ 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.84b = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_41 (%pattern_type.8ba9f0.2) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_41 (%pattern_type.8ba9f0.2) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_41 (%pattern_type.a236ae.2) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_41 (%pattern_type.a236ae.2) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: %u.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.9d9270.2) = binding_pattern u [concrete] // CHECK:STDOUT: %u.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.9d9270.2) = value_param_pattern %u.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_47 (%pattern_type.9d9270.2) = return_slot_pattern [concrete] @@ -1912,27 +1912,27 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_58: %J.type = name_ref T, %T.loc8_34.2 [symbolic = %T.loc8_34.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc8_59: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// 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: type = converted %T.ref.loc8_58, %T.as_type.loc8_59 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// 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: type = converted %T.ref.loc8_58, %T.as_type.loc8_59 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc8_59: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.312582.2)] // CHECK:STDOUT: %.loc8_38: type = splice_block %J.ref.loc8 [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %J.ref.loc8: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_34.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_34.1 (constants.%T)] -// 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.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.ref.loc8_44: %J.type = name_ref T, %T.loc8_34.2 [symbolic = %T.loc8_34.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %t: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @GenericCallInterfaceQualified.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) = 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.312582.2)] { // CHECK:STDOUT: %T.ref.loc8_50: %J.type = name_ref T, %T.loc8_34.2 [symbolic = %T.loc8_34.1 (constants.%T)] // CHECK:STDOUT: %U.ref.loc8_51: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// 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: %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: %impl.elem0.loc8_51.2: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.312582.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %u: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) = bind_name u, %u.param @@ -1947,8 +1947,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.%U [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %J.G.decl: %J.G.type = fn_decl @J.G [concrete = constants.%J.G] { -// CHECK:STDOUT: %self.patt: @J.G.%pattern_type.loc5_8 (%pattern_type.8ba9f0.1) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J.G.%pattern_type.loc5_8 (%pattern_type.8ba9f0.1) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @J.G.%pattern_type.loc5_8 (%pattern_type.a236ae.1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @J.G.%pattern_type.loc5_8 (%pattern_type.a236ae.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %v.patt: @J.G.%pattern_type.loc5_20 (%pattern_type.9d9270.1) = binding_pattern v [concrete] // CHECK:STDOUT: %v.param_patt: @J.G.%pattern_type.loc5_20 (%pattern_type.9d9270.1) = value_param_pattern %v.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @J.G.%pattern_type.loc5_20 (%pattern_type.9d9270.1) = return_slot_pattern [concrete] @@ -1956,13 +1956,13 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.1, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312582.1)] // CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312582.1)] -// CHECK:STDOUT: %self.param: @J.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.param: @J.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.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @J.G.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @J.G.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %v.param: @J.G.%impl.elem0.loc5_23.1 (%impl.elem0.312582.1) = value_param call_param1 // CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312582.1)] { // CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.1, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.312582.1)] @@ -1987,33 +1987,33 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.G(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.8ba9f0.1)] +// 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_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.a236ae.1)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.0802bc.1)] // 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.312582.1)] // CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.9d9270.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.G.%Self.as_type.loc5_14.1 (%Self.as_type), %v.param: @J.G.%impl.elem0.loc5_23.1 (%impl.elem0.312582.1)) -> @J.G.%impl.elem0.loc5_23.1 (%impl.elem0.312582.1); +// CHECK:STDOUT: fn(%self.param: @J.G.%Self.binding.as_type (%Self.binding.as_type), %v.param: @J.G.%impl.elem0.loc5_23.1 (%impl.elem0.312582.1)) -> @J.G.%impl.elem0.loc5_23.1 (%impl.elem0.312582.1); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericCallInterfaceQualified(%T.loc8_34.2: %J.type) { // CHECK:STDOUT: %T.loc8_34.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_34.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_44.1: type = facet_access_type %T.loc8_34.1 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_41: type = pattern_type %T.as_type.loc8_44.1 [symbolic = %pattern_type.loc8_41 (constants.%pattern_type.8ba9f0.2)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_34.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc8_41: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc8_41 (constants.%pattern_type.a236ae.2)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_34.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.0802bc.2)] // 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.312582.2)] // CHECK:STDOUT: %pattern_type.loc8_47: type = pattern_type %impl.elem0.loc8_51.1 [symbolic = %pattern_type.loc8_47 (constants.%pattern_type.9d9270.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8_55: = require_complete_type %impl.elem0.loc8_51.1 [symbolic = %require_complete.loc8_55 (constants.%require_complete.73c)] -// CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.as_type.loc8_44.1 [symbolic = %require_complete.loc8_42 (constants.%require_complete.8dd)] +// CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc8_42 (constants.%require_complete.bb1)] // CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type constants.%J.G.type, %T.loc8_34.1 [symbolic = %.loc9_11 (constants.%.7f3)] // CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallInterfaceQualified.%.loc9_11 (%.7f3) = 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.G(%T.loc8_34.1) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// 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.312582.2)) -> %return.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) { +// CHECK:STDOUT: fn(%t.param: @GenericCallInterfaceQualified.%T.binding.as_type (%T.binding.as_type), %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2)) -> %return.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.312582.2) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallInterfaceQualified.%T.binding.as_type (%T.binding.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.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallInterfaceQualified.%.loc9_11 (%.7f3) = impl_witness_access constants.%J.lookup_impl_witness.0802bc.2, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] @@ -2031,8 +2031,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.8ba9f0.1 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.a236ae.1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.1 // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.312582.1 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.9d9270.1 @@ -2042,8 +2042,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallInterfaceQualified(constants.%T) { // CHECK:STDOUT: %T.loc8_34.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_44.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc8_41 => constants.%pattern_type.8ba9f0.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc8_41 => constants.%pattern_type.a236ae.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.2 // CHECK:STDOUT: %impl.elem0.loc8_51.1 => constants.%impl.elem0.312582.2 // CHECK:STDOUT: %pattern_type.loc8_47 => constants.%pattern_type.9d9270.2 @@ -2051,8 +2051,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.G(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.8ba9f0.2 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.a236ae.2 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.2 // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.312582.2 // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.9d9270.2 @@ -2074,7 +2074,7 @@ fn F() { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.659: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -2084,16 +2084,16 @@ fn F() { // CHECK:STDOUT: %J_where.type: type = facet_type <@J where %impl.elem0.338 = %i32> [concrete] // CHECK:STDOUT: %T: %J_where.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.fb6: type = pattern_type %J_where.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.ced: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.881: type = pattern_type %T.binding.as_type [symbolic] // 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.410: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.187: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.84c: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.84c) [symbolic] -// CHECK:STDOUT: %.fb1: type = fn_type_with_self_type %J.F.type, %J.facet [symbolic] -// CHECK:STDOUT: %impl.elem1: %.fb1 = impl_witness_access %J.lookup_impl_witness.84c, element1 [symbolic] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.binding.as_type, (%J.lookup_impl_witness.84c) [symbolic] +// CHECK:STDOUT: %.d05: type = fn_type_with_self_type %J.F.type, %J.facet [symbolic] +// CHECK:STDOUT: %impl.elem1: %.d05 = impl_witness_access %J.lookup_impl_witness.84c, element1 [symbolic] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.F(%J.facet) [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] @@ -2137,8 +2137,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.fb6 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallFI32.%pattern_type (%pattern_type.ced) = binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallFI32.%pattern_type (%pattern_type.ced) = value_param_pattern %t.patt, call_param0 [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallFI32.%pattern_type (%pattern_type.881) = binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallFI32.%pattern_type (%pattern_type.881) = value_param_pattern %t.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { @@ -2150,8 +2150,8 @@ fn F() { // CHECK:STDOUT: %.Self.2: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: %.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: %impl.elem0.loc8: type = impl_witness_access constants.%J.lookup_impl_witness.088, element0 [symbolic_self = constants.%impl.elem0.338] // CHECK:STDOUT: %int_32.loc8_37: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc8_37: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -2161,13 +2161,13 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_20.2: %J_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.1 (constants.%T)] -// 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.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.ref: %J_where.type = name_ref T, %T.loc8_20.2 [symbolic = %T.loc8_20.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %t: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = bind_name t, %t.param +// CHECK:STDOUT: %t: @GenericCallFI32.%T.binding.as_type (%T.binding.as_type) = bind_name t, %t.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -2219,22 +2219,22 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericCallFI32(%T.loc8_20.2: %J_where.type) { // CHECK:STDOUT: %T.loc8_20.1: %J_where.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_45.1: type = facet_access_type %T.loc8_20.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.ced)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_20.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.881)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_45.1 [symbolic = %require_complete (constants.%require_complete.410)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.187)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_20.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.84c)] -// 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: %.loc9_11: type = fn_type_with_self_type constants.%J.F.type, %J.facet [symbolic = %.loc9_11 (constants.%.fb1)] -// CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallFI32.%.loc9_11 (%.fb1) = 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.binding.as_type, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet)] +// CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type constants.%J.F.type, %J.facet [symbolic = %.loc9_11 (constants.%.d05)] +// CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallFI32.%.loc9_11 (%.d05) = 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.F(%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type)) -> %i32 { +// CHECK:STDOUT: fn(%t.param: @GenericCallFI32.%T.binding.as_type (%T.binding.as_type)) -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallFI32.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallFI32.%.loc9_11 (%.fb1) = impl_witness_access constants.%J.lookup_impl_witness.84c, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallFI32.%.loc9_11 (%.d05) = impl_witness_access constants.%J.lookup_impl_witness.84c, 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.F(constants.%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %impl.elem0.loc9: %.1df = impl_witness_access constants.%ImplicitAs.impl_witness.204, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0] @@ -2262,8 +2262,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallFI32(constants.%T) { // CHECK:STDOUT: %T.loc8_20.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_45.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ced +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.881 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%J.facet) { @@ -2288,7 +2288,7 @@ fn F() { // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, @J.%J.F.decl [concrete] // CHECK:STDOUT: %E: type = class_type @E [concrete] // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.088: = lookup_impl_witness %.Self, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.338: type = impl_witness_access %J.lookup_impl_witness.088, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -2409,8 +2409,8 @@ fn F() { // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.411] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.088, element0 [symbolic_self = constants.%impl.elem0.338] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -2481,14 +2481,14 @@ fn F() { // CHECK:STDOUT: %Self: %J2.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %J2.assoc_type: type = assoc_entity_type @J2 [concrete] // CHECK:STDOUT: %assoc0: %J2.assoc_type = assoc_entity element0, @J2.%U2 [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a0e: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.194: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %J2.F.type: type = fn_type @J2.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %J2.F: %J2.F.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1: %J2.assoc_type = assoc_entity element1, @J2.%J2.F.decl [concrete] // CHECK:STDOUT: %.Self: %J2.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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] @@ -2537,8 +2537,8 @@ fn F() { // CHECK:STDOUT: %.Self: %J2.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J2.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U2.ref: %J2.assoc_type = name_ref U2, @U2.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc22_28.2: type = converted %.loc22_28.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -2557,8 +2557,8 @@ fn F() { // CHECK:STDOUT: %.Self: %J2.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J2.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U2.ref: %J2.assoc_type = name_ref U2, @U2.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc38_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc38_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J2.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C2.ref.loc38_27: type = name_ref C2, file.%C2.decl [concrete = constants.%C2] // CHECK:STDOUT: %.loc38_15: type = where_expr %.Self [concrete = constants.%J2_where.type.29c] { @@ -2577,21 +2577,21 @@ fn F() { // CHECK:STDOUT: %assoc0: %J2.assoc_type = assoc_entity element0, @J2.%U2 [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %J2.F.decl: %J2.F.type = fn_decl @J2.F [concrete = constants.%J2.F] { -// CHECK:STDOUT: %self.patt: @J2.F.%pattern_type (%pattern_type.a0e) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @J2.F.%pattern_type (%pattern_type.a0e) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @J2.F.%pattern_type (%pattern_type.194) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @J2.F.%pattern_type (%pattern_type.194) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %z.patt: = binding_pattern z [concrete] // CHECK:STDOUT: %z.param_patt: = value_param_pattern %z.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc19_35: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %self.param: @J2.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.param: @J2.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.ref.loc19_14: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] -// 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: %Self.as_type: 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 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J2.F.%Self.as_type.loc19_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @J2.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %z.param: = value_param call_param1 // CHECK:STDOUT: %Self.ref.loc19_23: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %z: = bind_name z, %z.param @@ -2705,10 +2705,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J2.F(@J2.%Self: %J2.type) { // CHECK:STDOUT: %Self: %J2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.a0e)] +// 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.194)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J2.F.%Self.as_type.loc19_14.1 (%Self.as_type), %z.param: ) -> ; +// CHECK:STDOUT: fn(%self.param: @J2.F.%Self.binding.as_type (%Self.binding.as_type), %z.param: ) -> ; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.J2.impl.F.loc30_33.1(%self.param: %empty_tuple.type, %z.param: %empty_struct_type) -> %empty_struct_type { @@ -2754,21 +2754,21 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a0e +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.194 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @U2(constants.%.Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.F(constants.%J2.facet.e02) { // CHECK:STDOUT: %Self => constants.%J2.facet.e02 -// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.F(constants.%J2.facet.b7d) { // CHECK:STDOUT: %Self => constants.%J2.facet.b7d -// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%C2 +// CHECK:STDOUT: %Self.binding.as_type => constants.%C2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.838 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2779,8 +2779,8 @@ fn F() { // CHECK:STDOUT: %Self: %K.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type @K [concrete] // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.%V [concrete] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.6aa: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.c4b: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %K.lookup_impl_witness.246: = lookup_impl_witness %Self, @K [symbolic] // CHECK:STDOUT: %impl.elem0.43b: type = impl_witness_access %K.lookup_impl_witness.246, element0 [symbolic] // CHECK:STDOUT: %pattern_type.33f: type = pattern_type %impl.elem0.43b [symbolic] @@ -2789,7 +2789,7 @@ fn F() { // CHECK:STDOUT: %K.F: %K.F.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1: %K.assoc_type = assoc_entity element1, @K.%K.F.decl [concrete] // CHECK:STDOUT: %.Self: %K.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %K.lookup_impl_witness.1c8: = lookup_impl_witness %.Self, @K [symbolic_self] // CHECK:STDOUT: %impl.elem0.84d: type = impl_witness_access %K.lookup_impl_witness.1c8, element0 [symbolic_self] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [concrete] @@ -2829,8 +2829,8 @@ fn F() { // CHECK:STDOUT: %.Self: %K.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %K.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %V.ref: %K.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%K.lookup_impl_witness.1c8, element0 [symbolic_self = constants.%impl.elem0.84d] // CHECK:STDOUT: %.loc8_31.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc8_31.2: type = converted %.loc8_31.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -2851,8 +2851,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.%V [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %K.F.decl: %K.F.type = fn_decl @K.F [concrete = constants.%K.F] { -// CHECK:STDOUT: %self.patt: @K.F.%pattern_type.loc5_8 (%pattern_type.6aa) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @K.F.%pattern_type.loc5_8 (%pattern_type.6aa) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @K.F.%pattern_type.loc5_8 (%pattern_type.c4b) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @K.F.%pattern_type.loc5_8 (%pattern_type.c4b) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %v.patt: @K.F.%pattern_type.loc5_20 (%pattern_type.33f) = binding_pattern v [concrete] // CHECK:STDOUT: %v.param_patt: @K.F.%pattern_type.loc5_20 (%pattern_type.33f) = value_param_pattern %v.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @K.F.%pattern_type.loc5_20 (%pattern_type.33f) = return_slot_pattern [concrete] @@ -2860,13 +2860,13 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%K.lookup_impl_witness.246, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.43b)] // CHECK:STDOUT: %V.ref.loc5_29: type = name_ref V, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.43b)] -// CHECK:STDOUT: %self.param: @K.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.param: @K.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.ref: %K.type = name_ref Self, @K.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @K.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @K.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %v.param: @K.F.%impl.elem0.loc5_23.1 (%impl.elem0.43b) = value_param call_param1 // CHECK:STDOUT: %.loc5_23: type = splice_block %V.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.43b)] { // CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%K.lookup_impl_witness.246, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.43b)] @@ -2937,13 +2937,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @K.F(@K.%Self: %K.type) { // CHECK:STDOUT: %Self: %K.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.6aa)] +// 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_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.c4b)] // CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %Self, @K [symbolic = %K.lookup_impl_witness (constants.%K.lookup_impl_witness.246)] // CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %K.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.43b)] // CHECK:STDOUT: %pattern_type.loc5_20: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_20 (constants.%pattern_type.33f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @K.F.%Self.as_type.loc5_14.1 (%Self.as_type), %v.param: @K.F.%impl.elem0.loc5_23.1 (%impl.elem0.43b)) -> @K.F.%impl.elem0.loc5_23.1 (%impl.elem0.43b); +// CHECK:STDOUT: fn(%self.param: @K.F.%Self.binding.as_type (%Self.binding.as_type), %v.param: @K.F.%impl.elem0.loc5_23.1 (%impl.elem0.43b)) -> @K.F.%impl.elem0.loc5_23.1 (%impl.elem0.43b); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.K.impl.F.loc16_45.1(%self.param: %empty_tuple.type, %v.param: %struct_type.x) -> %struct_type.x { @@ -2971,8 +2971,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @K.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.6aa +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.c4b // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.lookup_impl_witness.246 // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.43b // CHECK:STDOUT: %pattern_type.loc5_20 => constants.%pattern_type.33f @@ -2982,7 +2982,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @K.F(constants.%K.facet) { // CHECK:STDOUT: %Self => constants.%K.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.cb1 // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.impl_witness // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%struct_type.a @@ -3004,7 +3004,7 @@ fn F() { // CHECK:STDOUT: %M.G: %M.G.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1: %M.assoc_type = assoc_entity element1, @M.%M.G.decl [concrete] // CHECK:STDOUT: %.Self: %M.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -3037,8 +3037,8 @@ fn F() { // CHECK:STDOUT: %.Self: %M.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc8_33.1: %struct_type.b.347 = struct_literal (%.loc8_32) @@ -3153,7 +3153,7 @@ fn F() { // CHECK:STDOUT: %assoc1: %M.assoc_type = assoc_entity element1, @M.%M.G.decl [concrete] // CHECK:STDOUT: %C.7a7: type = class_type @C, @C(%empty_struct_type) [concrete] // CHECK:STDOUT: %.Self.1bb: %M.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1bb [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1bb [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self.1bb, @M [symbolic_self] // CHECK:STDOUT: %impl.elem0.276: %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] @@ -3216,8 +3216,8 @@ fn F() { // CHECK:STDOUT: %.Self: %M.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %.Self.ref: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0.105] -// 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: %.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: %impl.elem0: %struct_type.b.86f = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.276] // CHECK:STDOUT: %.loc10_35: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc10_36.1: %struct_type.b.347 = struct_literal (%.loc10_35) @@ -3241,8 +3241,8 @@ fn F() { // CHECK:STDOUT: %.Self: %M.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %.Self.ref: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.1bb] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0.105] -// 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: %.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: %impl.elem0: %struct_type.b.86f = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.276] // CHECK:STDOUT: %.loc16_35: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc16_36.1: %struct_type.b.161 = struct_literal (%.loc16_35) @@ -3404,8 +3404,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.995: %I.assoc_type = assoc_entity element0, @I.%N [concrete] -// CHECK:STDOUT: %Self.as_type.a67: type = facet_access_type %Self.7ee [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type.a67 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.1b7: type = symbolic_binding_type Self, 0, %Self.7ee [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type.1b7 [symbolic] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %I.lookup_impl_witness.dd3: = lookup_impl_witness %Self.7ee, @I [symbolic] @@ -3435,7 +3435,7 @@ fn F() { // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.%I.F.decl [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness.f6d: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0.700: %i32 = impl_witness_access %I.lookup_impl_witness.f6d, element0 [symbolic_self] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -3512,8 +3512,8 @@ fn F() { // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %N.ref: %I.assoc_type = name_ref N, @N.%assoc0 [concrete = constants.%assoc0.995] -// 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: %.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: %impl.elem0.loc8_20: %i32 = impl_witness_access constants.%I.lookup_impl_witness.f6d, element0 [symbolic_self = constants.%impl.elem0.700] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %impl.elem0.loc8_25: %.1df = impl_witness_access constants.%ImplicitAs.impl_witness.204, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0] @@ -3539,8 +3539,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.%N [concrete = constants.%assoc0.995] // CHECK:STDOUT: } // CHECK:STDOUT: %I.F.decl: %I.F.type = fn_decl @I.F [concrete = constants.%I.F] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type.loc5_8 (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type.loc5_8 (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type.loc5_8 (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type.loc5_8 (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @I.F.%pattern_type.loc5_22 (%pattern_type.478) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @I.F.%pattern_type.loc5_22 (%pattern_type.478) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { @@ -3557,13 +3557,13 @@ fn F() { // CHECK:STDOUT: %.loc5_37.1: Core.IntLiteral = value_of_initializer %Int.as.ImplicitAs.impl.Convert.call.loc5_37.2 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // 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.2 [symbolic = %array_type.loc5_38.1 (constants.%array_type.de7)] -// CHECK:STDOUT: %self.param: @I.F.%Self.as_type.loc5_14.1 (%Self.as_type.a67) = 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.a67)] { +// CHECK:STDOUT: %self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = 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.1b7)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.7ee)] -// 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.a67)] -// 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.a67)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc5_14.1 (%Self.as_type.a67) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @I.F.%array_type.loc5_38.1 (%array_type.de7) = out_param call_param1 // CHECK:STDOUT: %return: ref @I.F.%array_type.loc5_38.1 (%array_type.de7) = return_slot %return.param // CHECK:STDOUT: } @@ -3606,8 +3606,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.7ee)] -// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.a67)] -// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.d22)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.1b7)] +// CHECK:STDOUT: %pattern_type.loc5_8: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_8 (constants.%pattern_type.3f7)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.dd3)] // 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.9db)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %impl.elem0.loc5_37.1, constants.%Int.as.ImplicitAs.impl.Convert.b09 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound.494)] @@ -3616,7 +3616,7 @@ fn F() { // CHECK:STDOUT: %array_type.loc5_38.1: type = array_type %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1, bool [symbolic = %array_type.loc5_38.1 (constants.%array_type.de7)] // CHECK:STDOUT: %pattern_type.loc5_22: type = pattern_type %array_type.loc5_38.1 [symbolic = %pattern_type.loc5_22 (constants.%pattern_type.478)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc5_14.1 (%Self.as_type.a67)) -> @I.F.%array_type.loc5_38.1 (%array_type.de7); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.1b7)) -> @I.F.%array_type.loc5_38.1 (%array_type.de7); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.I.impl.F(%self.param: %empty_tuple.type) -> %return.param: %array_type.c9b { @@ -3645,8 +3645,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self.7ee) { // CHECK:STDOUT: %Self => constants.%Self.7ee -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.a67 -// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.1b7 +// CHECK:STDOUT: %pattern_type.loc5_8 => constants.%pattern_type.3f7 // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.dd3 // CHECK:STDOUT: %impl.elem0.loc5_37.1 => constants.%impl.elem0.9db // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound.494 @@ -3660,7 +3660,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_8 => 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 @@ -3690,7 +3690,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.de3: %Z.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.de3 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.de3 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.de3, @Z [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.ba1: type = facet_type <@Z where %impl.elem0 = %C.f2e> [symbolic] @@ -3708,10 +3708,10 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C.131, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b3c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.570: %DestroyT.as_type.as.Destroy.impl.Op.type.b3c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e6d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.6e9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e6d = struct_value () [concrete] // CHECK:STDOUT: %ptr.aaa: type = ptr_type %C.131 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.570, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.6e9, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3748,8 +3748,8 @@ fn F() { // CHECK:STDOUT: %.Self.1: %Z.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.de3] // CHECK:STDOUT: %.Self.ref: %Z.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.de3] // CHECK:STDOUT: %X.ref: %Z.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.659] -// 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: %.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: %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] // CHECK:STDOUT: %T.ref.loc9_44: type = name_ref T, %T.loc9_14.1 [symbolic = %T.loc9_14.2 (constants.%T)] @@ -3845,11 +3845,11 @@ fn F() { // CHECK:STDOUT: %a: %C.131 = bind_name a, %.loc12_23.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C.131, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_21.5: %type_where = converted constants.%C.131, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_21.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.570 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.570, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.loc12_21.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_21.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6e9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6e9, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.loc12_21.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.aaa = addr_of %.loc12_21.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index 18b96ffe075c3..a8a9409425a85 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -98,14 +98,14 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: %facet_value.18f: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.18f) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e7e: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.18f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c98: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.18f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.cff: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c98 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.c32: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.cff, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.18f) [concrete] // CHECK:STDOUT: %ValueBinding.type: type = fn_type @ValueBinding [concrete] // CHECK:STDOUT: %ValueBinding: %ValueBinding.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -278,18 +278,18 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: assign %.loc22_6, %.loc22_8 // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc21_3: %type_where = converted constants.%ptr.235, %facet_value.loc21 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %pa.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc21_3: = bound_method %pa.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %pa.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc21_3: = bound_method %pa.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc21_3: %ptr.5d5 = addr_of %pa.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21_3(%addr.loc21_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21_3(%addr.loc21_3) // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%array_type, %facet_value.loc18 [concrete = constants.%facet_value.18f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.c32] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc18: %ptr.f01 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -385,18 +385,18 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc32_8.2: %i32 = bind_value %.loc32_8.1 // CHECK:STDOUT: %facet_value.loc32: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] // CHECK:STDOUT: %.loc32_5.3: %type_where = converted constants.%array_type, %facet_value.loc32 [concrete = constants.%facet_value.18f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %.loc32_5.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] -// CHECK:STDOUT: %bound_method.loc32_5: = bound_method %.loc32_5.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %.loc32_5.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.c32] +// CHECK:STDOUT: %bound_method.loc32_5: = bound_method %.loc32_5.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc32: %ptr.f01 = addr_of %.loc32_5.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_5(%addr.loc32) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_5(%addr.loc32) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] // CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%array_type, %facet_value.loc26 [concrete = constants.%facet_value.18f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] -// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.c32] +// CHECK:STDOUT: %bound_method.loc26_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26: %ptr.f01 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26_3(%addr.loc26) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index af88266a8d248..cb77b60776544 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -94,14 +94,14 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.18f: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.18f) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e7e: %DestroyT.as_type.as.Destroy.impl.Op.type.ffb = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.18f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c98: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.18f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.cff: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c98 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.c32: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.cff, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.18f) [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -274,32 +274,32 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: assign %.loc41_8.2, %.loc41_10 // CHECK:STDOUT: %facet_value.loc41: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] // CHECK:STDOUT: %.loc41_5.3: %type_where = converted constants.%array_type, %facet_value.loc41 [concrete = constants.%facet_value.18f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_5.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] -// CHECK:STDOUT: %bound_method.loc41_5: = bound_method %.loc41_5.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %.loc41_5.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.c32] +// CHECK:STDOUT: %bound_method.loc41_5: = bound_method %.loc41_5.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.f01 = addr_of %.loc41_5.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_5(%addr.loc41) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_5(%addr.loc41) // CHECK:STDOUT: %facet_value.loc36_21: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.18f] // CHECK:STDOUT: %.loc36_21.3: %type_where = converted constants.%array_type, %facet_value.loc36_21 [concrete = constants.%facet_value.18f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36_21: = bound_method %.loc36_21.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e7e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.50e] -// CHECK:STDOUT: %bound_method.loc36_21: = bound_method %.loc36_21.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc36_21: = bound_method %.loc36_21.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cff, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.18f) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.c32] +// CHECK:STDOUT: %bound_method.loc36_21: = bound_method %.loc36_21.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc36_21: %ptr.f01 = addr_of %.loc36_21.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36_21: init %empty_tuple.type = call %bound_method.loc36_21(%addr.loc36_21) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc36_21: init %empty_tuple.type = call %bound_method.loc36_21(%addr.loc36_21) // CHECK:STDOUT: %facet_value.loc36_3: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc36_3: %type_where = converted constants.%ptr.235, %facet_value.loc36_3 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc36_3: = bound_method %pf.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc36_3: = bound_method %pf.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc36_3: = bound_method %pf.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc36_3: = bound_method %pf.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc36_3: %ptr.5d5 = addr_of %pf.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc36_3: init %empty_tuple.type = call %bound_method.loc36_3(%addr.loc36_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc36_3: init %empty_tuple.type = call %bound_method.loc36_3(%addr.loc36_3) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc23_3: %type_where = converted constants.%ptr.235, %facet_value.loc23 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %pb.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %pb.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %pb.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %pb.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23_3: %ptr.5d5 = addr_of %pb.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_name_not_found.carbon b/toolchain/check/testdata/index/fail_name_not_found.carbon index 027e4a513113d..3d4d7e5f41f95 100644 --- a/toolchain/check/testdata/index/fail_name_not_found.carbon +++ b/toolchain/check/testdata/index/fail_name_not_found.carbon @@ -35,10 +35,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -79,11 +79,11 @@ fn Main() { // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/as_type_of_type.carbon b/toolchain/check/testdata/interface/as_type_of_type.carbon index 8fc269e035f7e..3c3870217694a 100644 --- a/toolchain/check/testdata/interface/as_type_of_type.carbon +++ b/toolchain/check/testdata/interface/as_type_of_type.carbon @@ -38,25 +38,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.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %ptr.2b9: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %require_complete.1f4: = require_complete_type %ptr.2b9 [symbolic] -// CHECK:STDOUT: %pattern_type.ae3: type = pattern_type %ptr.2b9 [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %ptr.1e6: type = ptr_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.fcc: = require_complete_type %ptr.1e6 [symbolic] +// CHECK:STDOUT: %pattern_type.be3: type = pattern_type %ptr.1e6 [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.2b9, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.1c6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d4f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.970: %DestroyT.as_type.as.Destroy.impl.Op.type.d4f = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.886: type = ptr_type %ptr.2b9 [symbolic] -// CHECK:STDOUT: %require_complete.67e: = require_complete_type %ptr.886 [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.2b9, (%Destroy.impl_witness.1c6) [symbolic] -// CHECK:STDOUT: %.8dd: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.970, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.1e6, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.90f: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.890: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.57a: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.890 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.291: type = ptr_type %ptr.1e6 [symbolic] +// CHECK:STDOUT: %require_complete.f53: = require_complete_type %ptr.291 [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.1e6, (%Destroy.impl_witness.90f) [symbolic] +// CHECK:STDOUT: %.a0c: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.57a, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -66,8 +66,8 @@ fn F(T:! Empty) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -122,42 +122,42 @@ fn F(T:! Empty) { // CHECK:STDOUT: %T.loc21_6.1: %Empty.type = bind_symbolic_name T, 0 [symbolic = %T.loc21_6.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc22_11.2: type = facet_access_type %T.loc21_6.1 [symbolic = %T.as_type.loc22_11.2 (constants.%T.as_type)] -// CHECK:STDOUT: %ptr.loc22_11.2: type = ptr_type %T.as_type.loc22_11.2 [symbolic = %ptr.loc22_11.2 (constants.%ptr.2b9)] -// CHECK:STDOUT: %require_complete.loc22_11: = require_complete_type %ptr.loc22_11.2 [symbolic = %require_complete.loc22_11 (constants.%require_complete.1f4)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc22_11.2 [symbolic = %pattern_type (constants.%pattern_type.ae3)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc21_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %ptr.loc22_11.2: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc22_11.2 (constants.%ptr.1e6)] +// CHECK:STDOUT: %require_complete.loc22_11: = require_complete_type %ptr.loc22_11.2 [symbolic = %require_complete.loc22_11 (constants.%require_complete.fcc)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc22_11.2 [symbolic = %pattern_type (constants.%pattern_type.be3)] // CHECK:STDOUT: %facet_value.loc22_3.2: %type_where = facet_value %ptr.loc22_11.2, () [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.1c6)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc22_3.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.90f)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc22_11.2, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc22_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_3.2 (constants.%.8dd)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc22_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.d4f)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @F.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.d4f) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.970)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc22_3.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] -// CHECK:STDOUT: %ptr.loc22_3: type = ptr_type %ptr.loc22_11.2 [symbolic = %ptr.loc22_3 (constants.%ptr.886)] -// CHECK:STDOUT: %require_complete.loc22_3: = require_complete_type %ptr.loc22_3 [symbolic = %require_complete.loc22_3 (constants.%require_complete.67e)] +// CHECK:STDOUT: %.loc22_3.2: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc22_3.2 (constants.%.a0c)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc22_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.890)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @F.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.890) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57a)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc22_3.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %ptr.loc22_3: type = ptr_type %ptr.loc22_11.2 [symbolic = %ptr.loc22_3 (constants.%ptr.291)] +// CHECK:STDOUT: %require_complete.loc22_3: = require_complete_type %ptr.loc22_3 [symbolic = %require_complete.loc22_3 (constants.%require_complete.f53)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.ae3) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: @F.%pattern_type (%pattern_type.ae3) = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.be3) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: @F.%pattern_type (%pattern_type.be3) = var_pattern %x.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %x.var: ref @F.%ptr.loc22_11.2 (%ptr.2b9) = var %x.var_patt -// CHECK:STDOUT: %.loc22_11.1: type = splice_block %ptr.loc22_11.1 [symbolic = %ptr.loc22_11.2 (constants.%ptr.2b9)] { +// CHECK:STDOUT: %x.var: ref @F.%ptr.loc22_11.2 (%ptr.1e6) = var %x.var_patt +// CHECK:STDOUT: %.loc22_11.1: type = splice_block %ptr.loc22_11.1 [symbolic = %ptr.loc22_11.2 (constants.%ptr.1e6)] { // CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc21_6.2 [symbolic = %T.loc21_6.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc22_11.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_11.2 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc22_11.2: type = converted %T.ref, %T.as_type.loc22_11.1 [symbolic = %T.as_type.loc22_11.2 (constants.%T.as_type)] -// CHECK:STDOUT: %ptr.loc22_11.1: type = ptr_type %.loc22_11.2 [symbolic = %ptr.loc22_11.2 (constants.%ptr.2b9)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc22_11.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %ptr.loc22_11.1: type = ptr_type %.loc22_11.2 [symbolic = %ptr.loc22_11.2 (constants.%ptr.1e6)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref @F.%ptr.loc22_11.2 (%ptr.2b9) = bind_name x, %x.var -// CHECK:STDOUT: %facet_value.loc22_3.1: %type_where = facet_value constants.%ptr.2b9, () [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] -// CHECK:STDOUT: %.loc22_3.1: %type_where = converted constants.%ptr.2b9, %facet_value.loc22_3.1 [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0: @F.%.loc22_3.2 (%.8dd) = impl_witness_access constants.%Destroy.impl_witness.1c6, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.970)] +// CHECK:STDOUT: %x: ref @F.%ptr.loc22_11.2 (%ptr.1e6) = bind_name x, %x.var +// CHECK:STDOUT: %facet_value.loc22_3.1: %type_where = facet_value constants.%ptr.1e6, () [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %.loc22_3.1: %type_where = converted constants.%ptr.1e6, %facet_value.loc22_3.1 [symbolic = %facet_value.loc22_3.2 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0: @F.%.loc22_3.2 (%.a0c) = impl_witness_access constants.%Destroy.impl_witness.90f, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57a)] // CHECK:STDOUT: %bound_method.loc22_3.1: = bound_method %x.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn)] // CHECK:STDOUT: %bound_method.loc22_3.2: = bound_method %x.var, %specific_fn -// CHECK:STDOUT: %addr: @F.%ptr.loc22_3 (%ptr.886) = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22_3.2(%addr) +// CHECK:STDOUT: %addr: @F.%ptr.loc22_3 (%ptr.291) = addr_of %x.var +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc22_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/compound_member_access.carbon b/toolchain/check/testdata/interface/compound_member_access.carbon index d37eb41d54591..3b55b185d3382 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 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %J.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.84b: type = pattern_type %J.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.0802bc.1: = lookup_impl_witness %T, @J [symbolic] // CHECK:STDOUT: %impl.elem0.312582.1: type = impl_witness_access %J.lookup_impl_witness.0802bc.1, element0 [symbolic] // CHECK:STDOUT: %S: %impl.elem0.312582.1 = bind_symbolic_name S, 1 [symbolic] @@ -245,8 +245,8 @@ fn Works() { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc8_12.2 [symbolic = %T.loc8_12.1 (constants.%T)] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc8_24.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_24.1 (constants.%T.as_type)] -// CHECK:STDOUT: %.loc8_24.2: type = converted %T.ref, %T.as_type.loc8_24.2 [symbolic = %T.as_type.loc8_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %.loc8_24.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc8_24.2: type = impl_witness_access constants.%J.lookup_impl_witness.0802bc.1, element0 [symbolic = %impl.elem0.loc8_24.1 (constants.%impl.elem0.312582.1)] // CHECK:STDOUT: } // CHECK:STDOUT: %S.loc8_19.2: @Simple1.%impl.elem0.loc8_24.1 (%impl.elem0.312582.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.1 (constants.%S)] @@ -289,7 +289,7 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple1(%T.loc8_12.2: %J.type, %S.loc8_19.2: @Simple1.%impl.elem0.loc8_24.1 (%impl.elem0.312582.1)) { // CHECK:STDOUT: %T.loc8_12.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_24.1: type = facet_access_type %T.loc8_12.1 [symbolic = %T.as_type.loc8_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_12.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.0802bc.1)] // CHECK:STDOUT: %impl.elem0.loc8_24.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_24.1 (constants.%impl.elem0.312582.1)] // CHECK:STDOUT: %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.1 (%impl.elem0.312582.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.1 (constants.%S)] @@ -324,7 +324,7 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple1(constants.%T, constants.%S) { // CHECK:STDOUT: %T.loc8_12.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_24.1 => constants.%T.as_type +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.0802bc.1 // CHECK:STDOUT: %impl.elem0.loc8_24.1 => constants.%impl.elem0.312582.1 // CHECK:STDOUT: %S.loc8_19.1 => constants.%S @@ -357,7 +357,7 @@ fn Works() { // CHECK:STDOUT: %pattern_type: type = pattern_type %K1.type [concrete] // CHECK:STDOUT: %Simple2.type: type = fn_type @Simple2 [concrete] // CHECK:STDOUT: %Simple2: %Simple2.type = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] // CHECK:STDOUT: %K1.lookup_impl_witness.5aa361.1: = lookup_impl_witness %T, @K1 [symbolic] // CHECK:STDOUT: %.57535a.1: type = fn_type_with_self_type %K1.Q1.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0.60cefb.1: %.57535a.1 = impl_witness_access %K1.lookup_impl_witness.5aa361.1, element0 [symbolic] @@ -426,7 +426,7 @@ fn Works() { // CHECK:STDOUT: %T.loc8_12.1: %K1.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_12.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_12.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.5aa361.1)] // CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%K1.Q1.type, %T.loc8_12.1 [symbolic = %.loc9_4.2 (constants.%.57535a.1)] // CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.57535a.1) = impl_witness_access %K1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.60cefb.1)] @@ -436,8 +436,8 @@ fn Works() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %K1.type = name_ref T, %T.loc8_12.2 [symbolic = %T.loc8_12.1 (constants.%T)] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.%assoc0 [concrete = constants.%assoc0] -// 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: %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: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.57535a.1) = impl_witness_access constants.%K1.lookup_impl_witness.5aa361.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.60cefb.1)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K1.Q1(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.76c65f.1)] // CHECK:STDOUT: %.loc9_8: init %empty_tuple.type = call %specific_impl_fn.loc9_4.1() @@ -494,21 +494,21 @@ fn Works() { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %K2.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.4d9: type = pattern_type %K2.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.0e3df3.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.fe1259.1: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %Simple3.type: type = fn_type @Simple3 [concrete] // CHECK:STDOUT: %Simple3: %Simple3.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.c496eb.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.77a314.1: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T, @K2 [symbolic] // CHECK:STDOUT: %.143: type = fn_type_with_self_type %K2.Q2.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.143 = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @K2.Q2(%T) [symbolic] // CHECK:STDOUT: %V: %K2.type = bind_symbolic_name V, 0 [symbolic] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.0e3df3.2: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] +// CHECK:STDOUT: %pattern_type.fe1259.2: type = pattern_type %V.binding.as_type [symbolic] // CHECK:STDOUT: %Compound3.type: type = fn_type @Compound3 [concrete] // CHECK:STDOUT: %Compound3: %Compound3.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.c496eb.2: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %require_complete.77a314.2: = require_complete_type %V.binding.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: } @@ -533,39 +533,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.4d9 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.0e3df3.1) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.0e3df3.1) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.fe1259.1) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.fe1259.1) = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_16: type = splice_block %K2.ref [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_12.2: %K2.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] -// 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: %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: %T.ref: %K2.type = name_ref T, %T.loc8_12.2 [symbolic = %T.loc8_12.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %x: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %x: @Simple3.%T.binding.as_type (%T.binding.as_type) = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound3.decl: %Compound3.type = fn_decl @Compound3 [concrete = constants.%Compound3] { // CHECK:STDOUT: %V.patt: %pattern_type.4d9 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.0e3df3.2) = binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.0e3df3.2) = value_param_pattern %y.patt, call_param0 [concrete] +// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.fe1259.2) = binding_pattern y [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.fe1259.2) = value_param_pattern %y.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_18: type = splice_block %K2.ref.loc14 [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_14.2: %K2.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_14.1 (constants.%V)] -// 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: %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: %V.ref: %K2.type = name_ref V, %V.loc14_14.2 [symbolic = %V.loc14_14.1 (constants.%V)] -// 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: %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: } -// CHECK:STDOUT: %y: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %y: @Compound3.%V.binding.as_type (%V.binding.as_type) = bind_name y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -586,19 +586,19 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple3(%T.loc8_12.2: %K2.type) { // CHECK:STDOUT: %T.loc8_12.1: %K2.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_23.1: type = facet_access_type %T.loc8_12.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.0e3df3.1)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_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.fe1259.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_23.1 [symbolic = %require_complete (constants.%require_complete.c496eb.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.77a314.1)] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T.loc8_12.1, @K2 [symbolic = %K2.lookup_impl_witness (constants.%K2.lookup_impl_witness)] // CHECK:STDOUT: %.loc9_4: type = fn_type_with_self_type constants.%K2.Q2.type, %T.loc8_12.1 [symbolic = %.loc9_4 (constants.%.143)] // CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple3.%.loc9_4 (%.143) = 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.Q2(%T.loc8_12.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Simple3.%T.as_type.loc8_23.1 (%T.as_type)) { +// CHECK:STDOUT: fn(%x.param: @Simple3.%T.binding.as_type (%T.binding.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Simple3.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x // CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.%assoc0 [concrete = constants.%assoc0.d67] // CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple3.%.loc9_4 (%.143) = 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.Q2(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] @@ -609,15 +609,15 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Compound3(%V.loc14_14.2: %K2.type) { // CHECK:STDOUT: %V.loc14_14.1: %K2.type = bind_symbolic_name V, 0 [symbolic = %V.loc14_14.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc14_25.1: type = facet_access_type %V.loc14_14.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.0e3df3.2)] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc14_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.fe1259.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc14_25.1 [symbolic = %require_complete (constants.%require_complete.c496eb.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.binding.as_type [symbolic = %require_complete (constants.%require_complete.77a314.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @Compound3.%V.as_type.loc14_25.1 (%V.as_type)) { +// CHECK:STDOUT: fn(%y.param: @Compound3.%V.binding.as_type (%V.binding.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %y.ref: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = name_ref y, %y +// CHECK:STDOUT: %y.ref: @Compound3.%V.binding.as_type (%V.binding.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.%assoc0 [concrete = constants.%assoc0.d67] // CHECK:STDOUT: %.loc22: %K2.type = converted %y.ref, [concrete = ] @@ -629,16 +629,16 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple3(constants.%T) { // CHECK:STDOUT: %T.loc8_12.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc8_23.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0e3df3.1 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fe1259.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K2.Q2(constants.%T) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound3(constants.%V) { // CHECK:STDOUT: %V.loc14_14.1 => constants.%V -// CHECK:STDOUT: %V.as_type.loc14_25.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0e3df3.2 +// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fe1259.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- instance.carbon @@ -646,15 +646,15 @@ fn Works() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %L1.type: type = facet_type <@L1> [concrete] // CHECK:STDOUT: %Self: %L1.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.b73027.1: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.ca8092.1: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %L1.R1.type: type = fn_type @L1.R1 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %L1.R1: %L1.R1.type = struct_value () [concrete] // CHECK:STDOUT: %L1.assoc_type: type = assoc_entity_type @L1 [concrete] // CHECK:STDOUT: %assoc0: %L1.assoc_type = assoc_entity element0, @L1.%L1.R1.decl [concrete] -// CHECK:STDOUT: %ptr.be473c.1: type = ptr_type %Self.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c147e0.1: type = pattern_type %ptr.be473c.1 [symbolic] +// CHECK:STDOUT: %ptr.24e2cb.1: type = ptr_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.771b92.1: type = pattern_type %ptr.24e2cb.1 [symbolic] // CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete] // CHECK:STDOUT: %L1.S1.type: type = fn_type @L1.S1 [concrete] // CHECK:STDOUT: %L1.S1: %L1.S1.type = struct_value () [concrete] @@ -663,14 +663,14 @@ fn Works() { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %T: %L1.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.e3e: type = pattern_type %L1.type [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %pattern_type.b73027.2: type = pattern_type %T.as_type [symbolic] -// CHECK:STDOUT: %ptr.be473c.2: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c147e0.2: type = pattern_type %ptr.be473c.2 [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %pattern_type.ca8092.2: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %ptr.24e2cb.2: type = ptr_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.771b92.2: type = pattern_type %ptr.24e2cb.2 [symbolic] // CHECK:STDOUT: %Simple4.type: type = fn_type @Simple4 [concrete] // CHECK:STDOUT: %Simple4: %Simple4.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.7cc52f.1: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %require_complete.b75e15.1: = require_complete_type %ptr.be473c.2 [symbolic] +// CHECK:STDOUT: %require_complete.ee4571.1: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.99d4b7.1: = require_complete_type %ptr.24e2cb.2 [symbolic] // CHECK:STDOUT: %L1.lookup_impl_witness.771a6e.1: = lookup_impl_witness %T, @L1 [symbolic] // CHECK:STDOUT: %.ce9ba2.1: type = fn_type_with_self_type %L1.R1.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0.8eac48.1: %.ce9ba2.1 = impl_witness_access %L1.lookup_impl_witness.771a6e.1, element0 [symbolic] @@ -679,14 +679,14 @@ fn Works() { // CHECK:STDOUT: %impl.elem1.d265e8.1: %.db2f57.1 = impl_witness_access %L1.lookup_impl_witness.771a6e.1, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.5bb1dd.1: = specific_impl_function %impl.elem1.d265e8.1, @L1.S1(%T) [symbolic] // CHECK:STDOUT: %V: %L1.type = bind_symbolic_name V, 0 [symbolic] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %pattern_type.b73027.3: type = pattern_type %V.as_type [symbolic] -// CHECK:STDOUT: %ptr.be473c.3: type = ptr_type %V.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.c147e0.3: type = pattern_type %ptr.be473c.3 [symbolic] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] +// CHECK:STDOUT: %pattern_type.ca8092.3: type = pattern_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %ptr.24e2cb.3: type = ptr_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.771b92.3: type = pattern_type %ptr.24e2cb.3 [symbolic] // CHECK:STDOUT: %Compound4.type: type = fn_type @Compound4 [concrete] // CHECK:STDOUT: %Compound4: %Compound4.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.7cc52f.2: = require_complete_type %V.as_type [symbolic] -// CHECK:STDOUT: %require_complete.b75e15.2: = require_complete_type %ptr.be473c.3 [symbolic] +// CHECK:STDOUT: %require_complete.ee4571.2: = require_complete_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.99d4b7.2: = require_complete_type %ptr.24e2cb.3 [symbolic] // CHECK:STDOUT: %L1.lookup_impl_witness.771a6e.2: = lookup_impl_witness %V, @L1 [symbolic] // CHECK:STDOUT: %.ce9ba2.2: type = fn_type_with_self_type %L1.R1.type, %V [symbolic] // CHECK:STDOUT: %impl.elem0.8eac48.2: %.ce9ba2.2 = impl_witness_access %L1.lookup_impl_witness.771a6e.2, element0 [symbolic] @@ -714,90 +714,90 @@ 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.e3e = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_20 (%pattern_type.b73027.2) = binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_20 (%pattern_type.b73027.2) = value_param_pattern %x.patt, call_param0 [concrete] -// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_26 (%pattern_type.c147e0.2) = binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_26 (%pattern_type.c147e0.2) = value_param_pattern %p.patt, call_param1 [concrete] +// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_20 (%pattern_type.ca8092.2) = binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_20 (%pattern_type.ca8092.2) = value_param_pattern %x.patt, call_param0 [concrete] +// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_26 (%pattern_type.771b92.2) = binding_pattern p [concrete] +// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_26 (%pattern_type.771b92.2) = value_param_pattern %p.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_16: type = splice_block %L1.ref [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_12.2: %L1.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_12.1 (constants.%T)] -// 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: %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: %T.ref.loc9_23: %L1.type = name_ref T, %T.loc9_12.2 [symbolic = %T.loc9_12.1 (constants.%T)] -// 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: %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: } -// CHECK:STDOUT: %x: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = bind_name x, %x.param -// CHECK:STDOUT: %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2) = value_param call_param1 -// CHECK:STDOUT: %.loc9_30.1: type = splice_block %ptr.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.be473c.2)] { +// CHECK:STDOUT: %x: @Simple4.%T.binding.as_type (%T.binding.as_type) = bind_name x, %x.param +// CHECK:STDOUT: %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.24e2cb.2) = value_param call_param1 +// CHECK:STDOUT: %.loc9_30.1: type = splice_block %ptr.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.24e2cb.2)] { // CHECK:STDOUT: %T.ref.loc9_29: %L1.type = name_ref T, %T.loc9_12.2 [symbolic = %T.loc9_12.1 (constants.%T)] -// 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.be473c.2)] +// 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.24e2cb.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2) = bind_name p, %p.param +// CHECK:STDOUT: %p: @Simple4.%ptr.loc9_30.1 (%ptr.24e2cb.2) = bind_name p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound4.decl: %Compound4.type = fn_decl @Compound4 [concrete = constants.%Compound4] { // CHECK:STDOUT: %V.patt: %pattern_type.e3e = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_22 (%pattern_type.b73027.3) = binding_pattern y [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_22 (%pattern_type.b73027.3) = value_param_pattern %y.patt, call_param0 [concrete] -// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_28 (%pattern_type.c147e0.3) = binding_pattern p [concrete] -// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_28 (%pattern_type.c147e0.3) = value_param_pattern %p.patt, call_param1 [concrete] +// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_22 (%pattern_type.ca8092.3) = binding_pattern y [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_22 (%pattern_type.ca8092.3) = value_param_pattern %y.patt, call_param0 [concrete] +// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_28 (%pattern_type.771b92.3) = binding_pattern p [concrete] +// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_28 (%pattern_type.771b92.3) = value_param_pattern %p.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %L1.ref.loc15 [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .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_14.2: %L1.type = bind_symbolic_name V, 0 [symbolic = %V.loc15_14.1 (constants.%V)] -// 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: %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: %V.ref.loc15_25: %L1.type = name_ref V, %V.loc15_14.2 [symbolic = %V.loc15_14.1 (constants.%V)] -// 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: %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: } -// CHECK:STDOUT: %y: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = bind_name y, %y.param -// CHECK:STDOUT: %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3) = value_param call_param1 -// CHECK:STDOUT: %.loc15_32.1: type = splice_block %ptr.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.be473c.3)] { +// CHECK:STDOUT: %y: @Compound4.%V.binding.as_type (%V.binding.as_type) = bind_name y, %y.param +// CHECK:STDOUT: %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.24e2cb.3) = value_param call_param1 +// CHECK:STDOUT: %.loc15_32.1: type = splice_block %ptr.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.24e2cb.3)] { // CHECK:STDOUT: %V.ref.loc15_31: %L1.type = name_ref V, %V.loc15_14.2 [symbolic = %V.loc15_14.1 (constants.%V)] -// 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.be473c.3)] +// 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.24e2cb.3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3) = bind_name p, %p.param +// CHECK:STDOUT: %p: @Compound4.%ptr.loc15_32.1 (%ptr.24e2cb.3) = bind_name p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @L1 { // CHECK:STDOUT: %Self: %L1.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %L1.R1.decl: %L1.R1.type = fn_decl @L1.R1 [concrete = constants.%L1.R1] { -// CHECK:STDOUT: %self.patt: @L1.R1.%pattern_type (%pattern_type.b73027.1) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L1.R1.%pattern_type (%pattern_type.b73027.1) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @L1.R1.%pattern_type (%pattern_type.ca8092.1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @L1.R1.%pattern_type (%pattern_type.ca8092.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @L1.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.param: @L1.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.ref: %L1.type = name_ref Self, @L1.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @L1.R1.%Self.as_type.loc4_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @L1.R1.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L1.assoc_type = assoc_entity element0, %L1.R1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %L1.S1.decl: %L1.S1.type = fn_decl @L1.S1 [concrete = constants.%L1.S1] { -// CHECK:STDOUT: %self.patt: @L1.S1.%pattern_type (%pattern_type.c147e0.1) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L1.S1.%pattern_type (%pattern_type.c147e0.1) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @L1.S1.%pattern_type (%pattern_type.771b92.1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @L1.S1.%pattern_type (%pattern_type.771b92.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %.loc5_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @L1.S1.%ptr.loc5_24.1 (%ptr.be473c.1) = value_param call_param0 -// CHECK:STDOUT: %.loc5_24.1: type = splice_block %ptr.loc5_24.2 [symbolic = %ptr.loc5_24.1 (constants.%ptr.be473c.1)] { +// CHECK:STDOUT: %self.param: @L1.S1.%ptr.loc5_24.1 (%ptr.24e2cb.1) = value_param call_param0 +// CHECK:STDOUT: %.loc5_24.1: type = splice_block %ptr.loc5_24.2 [symbolic = %ptr.loc5_24.1 (constants.%ptr.24e2cb.1)] { // CHECK:STDOUT: %Self.ref: %L1.type = name_ref Self, @L1.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_24.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc5_24.2: type = converted %Self.ref, %Self.as_type.loc5_24.2 [symbolic = %Self.as_type.loc5_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc5_24.2: type = ptr_type %.loc5_24.2 [symbolic = %ptr.loc5_24.1 (constants.%ptr.be473c.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_24.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %ptr.loc5_24.2: type = ptr_type %.loc5_24.2 [symbolic = %ptr.loc5_24.1 (constants.%ptr.24e2cb.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @L1.S1.%ptr.loc5_24.1 (%ptr.be473c.1) = bind_name self, %self.param +// CHECK:STDOUT: %self: @L1.S1.%ptr.loc5_24.1 (%ptr.24e2cb.1) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %L1.assoc_type = assoc_entity element1, %L1.S1.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -810,31 +810,31 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L1.R1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.b73027.1)] +// 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.ca8092.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @L1.R1.%Self.as_type.loc4_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @L1.R1.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L1.S1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_24.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc5_24.1: type = ptr_type %Self.as_type.loc5_24.1 [symbolic = %ptr.loc5_24.1 (constants.%ptr.be473c.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc5_24.1 [symbolic = %pattern_type (constants.%pattern_type.c147e0.1)] +// 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: %ptr.loc5_24.1: type = ptr_type %Self.binding.as_type [symbolic = %ptr.loc5_24.1 (constants.%ptr.24e2cb.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc5_24.1 [symbolic = %pattern_type (constants.%pattern_type.771b92.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @L1.S1.%ptr.loc5_24.1 (%ptr.be473c.1)); +// CHECK:STDOUT: fn(%self.param: @L1.S1.%ptr.loc5_24.1 (%ptr.24e2cb.1)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple4(%T.loc9_12.2: %L1.type) { // CHECK:STDOUT: %T.loc9_12.1: %L1.type = bind_symbolic_name T, 0 [symbolic = %T.loc9_12.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_23.1: type = facet_access_type %T.loc9_12.1 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.b73027.2)] -// CHECK:STDOUT: %ptr.loc9_30.1: type = ptr_type %T.as_type.loc9_23.1 [symbolic = %ptr.loc9_30.1 (constants.%ptr.be473c.2)] -// CHECK:STDOUT: %pattern_type.loc9_26: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_26 (constants.%pattern_type.c147e0.2)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_12.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.ca8092.2)] +// CHECK:STDOUT: %ptr.loc9_30.1: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc9_30.1 (constants.%ptr.24e2cb.2)] +// CHECK:STDOUT: %pattern_type.loc9_26: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_26 (constants.%pattern_type.771b92.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete.loc9_21 (constants.%require_complete.7cc52f.1)] -// CHECK:STDOUT: %require_complete.loc9_27: = require_complete_type %ptr.loc9_30.1 [symbolic = %require_complete.loc9_27 (constants.%require_complete.b75e15.1)] +// CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_21 (constants.%require_complete.ee4571.1)] +// CHECK:STDOUT: %require_complete.loc9_27: = require_complete_type %ptr.loc9_30.1 [symbolic = %require_complete.loc9_27 (constants.%require_complete.99d4b7.1)] // CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %T.loc9_12.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.771a6e.1)] // CHECK:STDOUT: %.loc10_4: type = fn_type_with_self_type constants.%L1.R1.type, %T.loc9_12.1 [symbolic = %.loc10_4 (constants.%.ce9ba2.1)] // CHECK:STDOUT: %impl.elem0.loc10_4.2: @Simple4.%.loc10_4 (%.ce9ba2.1) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.8eac48.1)] @@ -843,23 +843,23 @@ fn Works() { // CHECK:STDOUT: %impl.elem1.loc11_4.2: @Simple4.%.loc11_4.2 (%.db2f57.1) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.d265e8.1)] // CHECK:STDOUT: %specific_impl_fn.loc11_4.2: = specific_impl_function %impl.elem1.loc11_4.2, @L1.S1(%T.loc9_12.1) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.5bb1dd.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type), %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2)) { +// CHECK:STDOUT: fn(%x.param: @Simple4.%T.binding.as_type (%T.binding.as_type), %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.24e2cb.2)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Simple4.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_4.1: @Simple4.%.loc10_4 (%.ce9ba2.1) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.1, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.8eac48.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.R1(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.239e4d.1)] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %x.ref, %specific_impl_fn.loc10_4.1 // CHECK:STDOUT: %.loc10_8: init %empty_tuple.type = call %bound_method.loc10_8(%x.ref) -// CHECK:STDOUT: %p.ref: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2) = 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: %p.ref: @Simple4.%ptr.loc9_30.1 (%ptr.24e2cb.2) = name_ref p, %p +// CHECK:STDOUT: %.loc11_4.1: ref @Simple4.%T.binding.as_type (%T.binding.as_type) = deref %p.ref // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc11_4.1: @Simple4.%.loc11_4.2 (%.db2f57.1) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.1, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.d265e8.1)] // CHECK:STDOUT: %bound_method.loc11_4: = bound_method %.loc11_4.1, %impl.elem1.loc11_4.1 // CHECK:STDOUT: %specific_impl_fn.loc11_4.1: = specific_impl_function %impl.elem1.loc11_4.1, @L1.S1(constants.%T) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.5bb1dd.1)] // CHECK:STDOUT: %bound_method.loc11_9: = bound_method %.loc11_4.1, %specific_impl_fn.loc11_4.1 -// CHECK:STDOUT: %addr: @Simple4.%ptr.loc9_30.1 (%ptr.be473c.2) = addr_of %.loc11_4.1 +// CHECK:STDOUT: %addr: @Simple4.%ptr.loc9_30.1 (%ptr.24e2cb.2) = addr_of %.loc11_4.1 // CHECK:STDOUT: %.loc11_9: init %empty_tuple.type = call %bound_method.loc11_9(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -867,14 +867,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Compound4(%V.loc15_14.2: %L1.type) { // CHECK:STDOUT: %V.loc15_14.1: %L1.type = bind_symbolic_name V, 0 [symbolic = %V.loc15_14.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc15_25.1: type = facet_access_type %V.loc15_14.1 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_22: type = pattern_type %V.as_type.loc15_25.1 [symbolic = %pattern_type.loc15_22 (constants.%pattern_type.b73027.3)] -// CHECK:STDOUT: %ptr.loc15_32.1: type = ptr_type %V.as_type.loc15_25.1 [symbolic = %ptr.loc15_32.1 (constants.%ptr.be473c.3)] -// CHECK:STDOUT: %pattern_type.loc15_28: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_28 (constants.%pattern_type.c147e0.3)] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc15_14.1 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %pattern_type.loc15_22: type = pattern_type %V.binding.as_type [symbolic = %pattern_type.loc15_22 (constants.%pattern_type.ca8092.3)] +// CHECK:STDOUT: %ptr.loc15_32.1: type = ptr_type %V.binding.as_type [symbolic = %ptr.loc15_32.1 (constants.%ptr.24e2cb.3)] +// CHECK:STDOUT: %pattern_type.loc15_28: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_28 (constants.%pattern_type.771b92.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.as_type.loc15_25.1 [symbolic = %require_complete.loc15_23 (constants.%require_complete.7cc52f.2)] -// CHECK:STDOUT: %require_complete.loc15_29: = require_complete_type %ptr.loc15_32.1 [symbolic = %require_complete.loc15_29 (constants.%require_complete.b75e15.2)] +// CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.binding.as_type [symbolic = %require_complete.loc15_23 (constants.%require_complete.ee4571.2)] +// CHECK:STDOUT: %require_complete.loc15_29: = require_complete_type %ptr.loc15_32.1 [symbolic = %require_complete.loc15_29 (constants.%require_complete.99d4b7.2)] // CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %V.loc15_14.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.771a6e.2)] // CHECK:STDOUT: %.loc16_4: type = fn_type_with_self_type constants.%L1.R1.type, %V.loc15_14.1 [symbolic = %.loc16_4 (constants.%.ce9ba2.2)] // CHECK:STDOUT: %impl.elem0.loc16_4.2: @Compound4.%.loc16_4 (%.ce9ba2.2) = impl_witness_access %L1.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.8eac48.2)] @@ -883,9 +883,9 @@ fn Works() { // CHECK:STDOUT: %impl.elem1.loc17_4.2: @Compound4.%.loc17_4.2 (%.db2f57.2) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.d265e8.2)] // CHECK:STDOUT: %specific_impl_fn.loc17_4.2: = specific_impl_function %impl.elem1.loc17_4.2, @L1.S1(%V.loc15_14.1) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.5bb1dd.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @Compound4.%V.as_type.loc15_25.1 (%V.as_type), %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3)) { +// CHECK:STDOUT: fn(%y.param: @Compound4.%V.binding.as_type (%V.binding.as_type), %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.24e2cb.3)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %y.ref: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = name_ref y, %y +// CHECK:STDOUT: %y.ref: @Compound4.%V.binding.as_type (%V.binding.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.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc16_4.1: @Compound4.%.loc16_4 (%.ce9ba2.2) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.2, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.8eac48.2)] @@ -893,15 +893,15 @@ fn Works() { // CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @L1.R1(constants.%V) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.239e4d.2)] // CHECK:STDOUT: %bound_method.loc16_13: = bound_method %y.ref, %specific_impl_fn.loc16_4.1 // CHECK:STDOUT: %.loc16_13: init %empty_tuple.type = call %bound_method.loc16_13(%y.ref) -// CHECK:STDOUT: %p.ref: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @Compound4.%ptr.loc15_32.1 (%ptr.24e2cb.3) = 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.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %.loc17_4.1: ref @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = deref %p.ref +// CHECK:STDOUT: %.loc17_4.1: ref @Compound4.%V.binding.as_type (%V.binding.as_type) = deref %p.ref // CHECK:STDOUT: %impl.elem1.loc17_4.1: @Compound4.%.loc17_4.2 (%.db2f57.2) = impl_witness_access constants.%L1.lookup_impl_witness.771a6e.2, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.d265e8.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.S1(constants.%V) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.5bb1dd.2)] // CHECK:STDOUT: %bound_method.loc17_14: = bound_method %.loc17_4.1, %specific_impl_fn.loc17_4.1 -// CHECK:STDOUT: %addr: @Compound4.%ptr.loc15_32.1 (%ptr.be473c.3) = addr_of %.loc17_4.1 +// CHECK:STDOUT: %addr: @Compound4.%ptr.loc15_32.1 (%ptr.24e2cb.3) = addr_of %.loc17_4.1 // CHECK:STDOUT: %.loc17_14: init %empty_tuple.type = call %bound_method.loc17_14(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -909,57 +909,57 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.R1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b73027.1 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ca8092.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.S1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%Self.as_type -// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.be473c.1 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c147e0.1 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.24e2cb.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.771b92.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple4(constants.%T) { // CHECK:STDOUT: %T.loc9_12.1 => constants.%T -// CHECK:STDOUT: %T.as_type.loc9_23.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.b73027.2 -// CHECK:STDOUT: %ptr.loc9_30.1 => constants.%ptr.be473c.2 -// CHECK:STDOUT: %pattern_type.loc9_26 => constants.%pattern_type.c147e0.2 +// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.ca8092.2 +// CHECK:STDOUT: %ptr.loc9_30.1 => constants.%ptr.24e2cb.2 +// CHECK:STDOUT: %pattern_type.loc9_26 => constants.%pattern_type.771b92.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.R1(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b73027.2 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ca8092.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.S1(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.be473c.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c147e0.2 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.24e2cb.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.771b92.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound4(constants.%V) { // CHECK:STDOUT: %V.loc15_14.1 => constants.%V -// CHECK:STDOUT: %V.as_type.loc15_25.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type.loc15_22 => constants.%pattern_type.b73027.3 -// CHECK:STDOUT: %ptr.loc15_32.1 => constants.%ptr.be473c.3 -// CHECK:STDOUT: %pattern_type.loc15_28 => constants.%pattern_type.c147e0.3 +// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type +// CHECK:STDOUT: %pattern_type.loc15_22 => constants.%pattern_type.ca8092.3 +// CHECK:STDOUT: %ptr.loc15_32.1 => constants.%ptr.24e2cb.3 +// CHECK:STDOUT: %pattern_type.loc15_28 => constants.%pattern_type.771b92.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.R1(constants.%V) { // CHECK:STDOUT: %Self => constants.%V -// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%V.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b73027.3 +// CHECK:STDOUT: %Self.binding.as_type => constants.%V.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ca8092.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.S1(constants.%V) { // CHECK:STDOUT: %Self => constants.%V -// CHECK:STDOUT: %Self.as_type.loc5_24.1 => constants.%V.as_type -// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.be473c.3 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c147e0.3 +// CHECK:STDOUT: %Self.binding.as_type => constants.%V.binding.as_type +// CHECK:STDOUT: %ptr.loc5_24.1 => constants.%ptr.24e2cb.3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.771b92.3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_interface_instance_caller_not.carbon @@ -967,15 +967,15 @@ fn Works() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %L2.type: type = facet_type <@L2> [concrete] // CHECK:STDOUT: %Self: %L2.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.dcd64e.1: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.188385.1: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %L2.R2.type: type = fn_type @L2.R2 [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %L2.R2: %L2.R2.type = struct_value () [concrete] // CHECK:STDOUT: %L2.assoc_type: type = assoc_entity_type @L2 [concrete] // CHECK:STDOUT: %assoc0: %L2.assoc_type = assoc_entity element0, @L2.%L2.R2.decl [concrete] -// CHECK:STDOUT: %ptr.6e05d5.1: type = ptr_type %Self.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.f863f7.1: type = pattern_type %ptr.6e05d5.1 [symbolic] +// CHECK:STDOUT: %ptr.ab04da.1: type = ptr_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.4192b4.1: type = pattern_type %ptr.ab04da.1 [symbolic] // CHECK:STDOUT: %pattern_type.f6d: type = pattern_type auto [concrete] // CHECK:STDOUT: %L2.S2.type: type = fn_type @L2.S2 [concrete] // CHECK:STDOUT: %L2.S2: %L2.S2.type = struct_value () [concrete] @@ -986,16 +986,16 @@ fn Works() { // CHECK:STDOUT: %pattern_type.38f: type = pattern_type %L2.type [concrete] // CHECK:STDOUT: %Simple5.type: type = fn_type @Simple5 [concrete] // CHECK:STDOUT: %Simple5: %Simple5.type = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] // CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T, @L2 [symbolic] // CHECK:STDOUT: %.c57: type = fn_type_with_self_type %L2.R2.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.c57 = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %pattern_type.dcd64e.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.188385.2: type = pattern_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %specific_impl_fn.259: = specific_impl_function %impl.elem0, @L2.R2(%T) [symbolic] // CHECK:STDOUT: %.7f1: type = fn_type_with_self_type %L2.S2.type, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.7f1 = impl_witness_access %L2.lookup_impl_witness, element1 [symbolic] -// CHECK:STDOUT: %ptr.6e05d5.2: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.f863f7.2: type = pattern_type %ptr.6e05d5.2 [symbolic] +// CHECK:STDOUT: %ptr.ab04da.2: type = ptr_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.4192b4.2: type = pattern_type %ptr.ab04da.2 [symbolic] // CHECK:STDOUT: %specific_impl_fn.555: = specific_impl_function %impl.elem1, @L2.S2(%T) [symbolic] // CHECK:STDOUT: %V: %L2.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %Compound5.type: type = fn_type @Compound5 [concrete] @@ -1041,31 +1041,31 @@ fn Works() { // CHECK:STDOUT: interface @L2 { // CHECK:STDOUT: %Self: %L2.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %L2.R2.decl: %L2.R2.type = fn_decl @L2.R2 [concrete = constants.%L2.R2] { -// CHECK:STDOUT: %self.patt: @L2.R2.%pattern_type (%pattern_type.dcd64e.1) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L2.R2.%pattern_type (%pattern_type.dcd64e.1) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @L2.R2.%pattern_type (%pattern_type.188385.1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @L2.R2.%pattern_type (%pattern_type.188385.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @L2.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.param: @L2.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.ref: %L2.type = name_ref Self, @L2.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @L2.R2.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @L2.R2.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L2.assoc_type = assoc_entity element0, %L2.R2.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %L2.S2.decl: %L2.S2.type = fn_decl @L2.S2 [concrete = constants.%L2.S2] { -// CHECK:STDOUT: %self.patt: @L2.S2.%pattern_type (%pattern_type.f863f7.1) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @L2.S2.%pattern_type (%pattern_type.f863f7.1) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @L2.S2.%pattern_type (%pattern_type.4192b4.1) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @L2.S2.%pattern_type (%pattern_type.4192b4.1) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %.loc6_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @L2.S2.%ptr.loc6_24.1 (%ptr.6e05d5.1) = value_param call_param0 -// CHECK:STDOUT: %.loc6_24.1: type = splice_block %ptr.loc6_24.2 [symbolic = %ptr.loc6_24.1 (constants.%ptr.6e05d5.1)] { +// CHECK:STDOUT: %self.param: @L2.S2.%ptr.loc6_24.1 (%ptr.ab04da.1) = value_param call_param0 +// CHECK:STDOUT: %.loc6_24.1: type = splice_block %ptr.loc6_24.2 [symbolic = %ptr.loc6_24.1 (constants.%ptr.ab04da.1)] { // CHECK:STDOUT: %Self.ref: %L2.type = name_ref Self, @L2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc6_24.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc6_24.2: type = converted %Self.ref, %Self.as_type.loc6_24.2 [symbolic = %Self.as_type.loc6_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc6_24.2: type = ptr_type %.loc6_24.2 [symbolic = %ptr.loc6_24.1 (constants.%ptr.6e05d5.1)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %.loc6_24.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %ptr.loc6_24.2: type = ptr_type %.loc6_24.2 [symbolic = %ptr.loc6_24.1 (constants.%ptr.ab04da.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @L2.S2.%ptr.loc6_24.1 (%ptr.6e05d5.1) = bind_name self, %self.param +// CHECK:STDOUT: %self: @L2.S2.%ptr.loc6_24.1 (%ptr.ab04da.1) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %L2.assoc_type = assoc_entity element1, %L2.S2.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -1078,26 +1078,26 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L2.R2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.dcd64e.1)] +// 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.188385.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @L2.R2.%Self.as_type.loc5_15.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @L2.R2.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L2.S2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc6_24.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_24.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %ptr.loc6_24.1: type = ptr_type %Self.as_type.loc6_24.1 [symbolic = %ptr.loc6_24.1 (constants.%ptr.6e05d5.1)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc6_24.1 [symbolic = %pattern_type (constants.%pattern_type.f863f7.1)] +// 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: %ptr.loc6_24.1: type = ptr_type %Self.binding.as_type [symbolic = %ptr.loc6_24.1 (constants.%ptr.ab04da.1)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc6_24.1 [symbolic = %pattern_type (constants.%pattern_type.4192b4.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @L2.S2.%ptr.loc6_24.1 (%ptr.6e05d5.1)); +// CHECK:STDOUT: fn(%self.param: @L2.S2.%ptr.loc6_24.1 (%ptr.ab04da.1)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple5(%T.loc10_12.2: %L2.type) { // CHECK:STDOUT: %T.loc10_12.1: %L2.type = bind_symbolic_name T, 0 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc18_4.2: type = facet_access_type %T.loc10_12.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc10_12.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T.loc10_12.1, @L2 [symbolic = %L2.lookup_impl_witness (constants.%L2.lookup_impl_witness)] // CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type constants.%L2.R2.type, %T.loc10_12.1 [symbolic = %.loc18_4.2 (constants.%.c57)] // CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.c57) = impl_witness_access %L2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] @@ -1110,15 +1110,15 @@ fn Works() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc18: %L2.type = name_ref T, %T.loc10_12.2 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: %R2.ref: %L2.assoc_type = name_ref R2, @L2.%assoc0 [concrete = constants.%assoc0] -// 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: %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: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.c57) = impl_witness_access constants.%L2.lookup_impl_witness, 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.R2(constants.%T) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.259)] // CHECK:STDOUT: %.loc18_8: init %empty_tuple.type = call %specific_impl_fn.loc18_4.1() [concrete = ] // CHECK:STDOUT: %T.ref.loc26: %L2.type = name_ref T, %T.loc10_12.2 [symbolic = %T.loc10_12.1 (constants.%T)] // CHECK:STDOUT: %S2.ref: %L2.assoc_type = name_ref S2, @L2.%assoc1 [concrete = constants.%assoc1] -// 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: %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: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.7f1) = impl_witness_access constants.%L2.lookup_impl_witness, 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.S2(constants.%T) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.555)] // CHECK:STDOUT: %addr: = addr_of [concrete = ] @@ -1146,15 +1146,15 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.R2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dcd64e.1 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.188385.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.S2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc6_24.1 => constants.%Self.as_type -// CHECK:STDOUT: %ptr.loc6_24.1 => constants.%ptr.6e05d5.1 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f863f7.1 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %ptr.loc6_24.1 => constants.%ptr.ab04da.1 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4192b4.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple5(constants.%T) { @@ -1163,15 +1163,15 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.R2(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%T.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dcd64e.2 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.188385.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.S2(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.as_type.loc6_24.1 => constants.%T.as_type -// CHECK:STDOUT: %ptr.loc6_24.1 => constants.%ptr.6e05d5.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f863f7.2 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %ptr.loc6_24.1 => constants.%ptr.ab04da.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4192b4.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound5(constants.%V) { @@ -1213,10 +1213,10 @@ fn Works() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1352,25 +1352,25 @@ fn Works() { // CHECK:STDOUT: %.loc38_32: %A.type = converted %.loc38_8, [concrete = ] // CHECK:STDOUT: %facet_value.loc38: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc38_6.5: %type_where = converted constants.%C, %facet_value.loc38 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc38_6: = bound_method %.loc38_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc38_6: = bound_method %.loc38_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc38: %ptr.019 = addr_of %.loc38_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38_6(%addr.loc38) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38_6(%addr.loc38) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_6.5: %type_where = converted constants.%C, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc30_6: = bound_method %.loc30_6.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc30_6: = bound_method %.loc30_6.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.019 = addr_of %.loc30_6.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_6(%addr.loc30) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_6(%addr.loc30) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_5.5: %type_where = converted constants.%C, %facet_value.loc22 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc22_5: = bound_method %.loc22_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc22_5: = bound_method %.loc22_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.019 = addr_of %.loc22_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5(%addr.loc22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_5(%addr.loc22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/default_fn.carbon b/toolchain/check/testdata/interface/default_fn.carbon index bee2a889c36a0..3059030b0a6b1 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.d21: %I.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.800: type = facet_access_type %Self.d21 [symbolic] -// CHECK:STDOUT: %pattern_type.679: type = pattern_type %Self.as_type.800 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.4ee: type = symbolic_binding_type Self, 0, %Self.d21 [symbolic] +// CHECK:STDOUT: %pattern_type.1ec: type = pattern_type %Self.binding.as_type.4ee [symbolic] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] @@ -47,16 +47,16 @@ class C { // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete.3c3: = require_complete_type %Self.as_type.800 [symbolic] +// CHECK:STDOUT: %require_complete.5a0: = require_complete_type %Self.binding.as_type.4ee [symbolic] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.fa9: type = fn_type_with_self_type %I.F.type, %I.facet [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -80,16 +80,16 @@ class C { // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.d21] // CHECK:STDOUT: %I.F.decl: %I.F.type = fn_decl @I.F [concrete = constants.%I.F] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.679) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.679) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.1ec) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.1ec) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.F.%Self.as_type.loc18_16.1 (%Self.as_type.800) = value_param call_param0 -// CHECK:STDOUT: %.loc18_16.1: type = splice_block %.loc18_16.2 [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.800)] { +// CHECK:STDOUT: %self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.4ee) = value_param call_param0 +// CHECK:STDOUT: %.loc18_16.1: type = splice_block %.loc18_16.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.4ee)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.d21)] -// CHECK:STDOUT: %Self.as_type.loc18_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.800)] -// CHECK:STDOUT: %.loc18_16.2: type = converted %Self.ref, %Self.as_type.loc18_16.2 [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.800)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.4ee)] +// CHECK:STDOUT: %.loc18_16.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.4ee)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc18_16.1 (%Self.as_type.800) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type.4ee) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.F.decl [concrete = constants.%assoc0.a33] // CHECK:STDOUT: @@ -135,13 +135,13 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.d21)] -// CHECK:STDOUT: %Self.as_type.loc18_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_16.1 (constants.%Self.as_type.800)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_16.1 [symbolic = %pattern_type (constants.%pattern_type.679)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.4ee)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.1ec)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc18_16.1 [symbolic = %require_complete (constants.%require_complete.3c3)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete.5a0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc18_16.1 (%Self.as_type.800)) { +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type.4ee)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %c.patt: %pattern_type.c48 = binding_pattern c [concrete] @@ -163,11 +163,11 @@ class C { // CHECK:STDOUT: %C.as.I.impl.F.call: init %empty_tuple.type = call %bound_method.loc21(%.loc21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_7.2: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc20: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc20: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -179,13 +179,13 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self.d21) { // CHECK:STDOUT: %Self => constants.%Self.d21 -// CHECK:STDOUT: %Self.as_type.loc18_16.1 => constants.%Self.as_type.800 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.679 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.4ee +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc18_16.1 => constants.%C +// CHECK:STDOUT: %Self.binding.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c48 // 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 7cf0d7de620ec..20639b1f830a9 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon @@ -97,8 +97,8 @@ interface C { // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.96f = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.3ac: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] // CHECK:STDOUT: %Self: %ImplicitAs.type.3ac = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.379: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f6d: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert.type: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %ImplicitAs.Convert: %ImplicitAs.Convert.type = struct_value () [symbolic] @@ -132,20 +132,20 @@ interface C { // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %ImplicitAs.Convert.decl: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type) = fn_decl @ImplicitAs.Convert [symbolic = @ImplicitAs.%ImplicitAs.Convert (constants.%ImplicitAs.Convert)] { -// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.379) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.379) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.f6d) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_14 (%pattern_type.f6d) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.Convert.%pattern_type.loc4_28 (%pattern_type.7dc) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_22.2 [symbolic = %Dest (constants.%Dest)] -// CHECK:STDOUT: %self.param: @ImplicitAs.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: %self.param: @ImplicitAs.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: %.loc4_20.2: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = specific_constant @ImplicitAs.%Self.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -163,11 +163,11 @@ interface C { // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.3ac)] // CHECK:STDOUT: %Self: @ImplicitAs.Convert.%ImplicitAs.type (%ImplicitAs.type.3ac) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self)] -// 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_14: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.379)] +// 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_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_14 (constants.%pattern_type.f6d)] // CHECK:STDOUT: %pattern_type.loc4_28: type = pattern_type %Dest [symbolic = %pattern_type.loc4_28 (constants.%pattern_type.7dc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> @ImplicitAs.Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> @ImplicitAs.Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -178,8 +178,8 @@ interface C { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.3ac // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.379 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc4_14 => constants.%pattern_type.f6d // CHECK:STDOUT: %pattern_type.loc4_28 => constants.%pattern_type.7dc // CHECK:STDOUT: } // CHECK:STDOUT: @@ -192,7 +192,7 @@ interface C { // CHECK:STDOUT: %assoc0.cd1: %I.assoc_type = assoc_entity element0, @I.%T [concrete] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %Self.bf6: %J.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.bf6 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.bf6 [symbolic] // CHECK:STDOUT: %J.F.type: type = fn_type @J.F [concrete] // CHECK:STDOUT: %J.F: %J.F.type = struct_value () [concrete] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] @@ -237,7 +237,7 @@ interface C { // CHECK:STDOUT: %return.patt: = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc15_13.2: type = facet_access_type @J.%Self [symbolic = %Self.as_type.loc15_13.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %as_type: type = facet_access_type @J.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: %U.ref: = name_ref U, [concrete = ] // CHECK:STDOUT: %return.param: ref = out_param call_param0 // CHECK:STDOUT: %return: ref = return_slot %return.param @@ -258,7 +258,7 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.F(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.bf6)] -// CHECK:STDOUT: %Self.as_type.loc15_13.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc15_13.1 (constants.%Self.as_type)] +// 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: // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } @@ -267,7 +267,7 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.F(constants.%Self.bf6) { // CHECK:STDOUT: %Self => constants.%Self.bf6 -// CHECK:STDOUT: %Self.as_type.loc15_13.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- alias_to_different_interface_with_requires.carbon @@ -282,19 +282,19 @@ interface C { // CHECK:STDOUT: %.Self.659: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %V: %J2.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %pattern_type.dfd: type = pattern_type %J2.type [concrete] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] // CHECK:STDOUT: %.Self.f90: %I2.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.f90 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.f90 [symbolic_self] // CHECK:STDOUT: %I2.lookup_impl_witness.b49: = lookup_impl_witness %.Self.f90, @I2 [symbolic_self] // CHECK:STDOUT: %impl.elem0.b22: type = impl_witness_access %I2.lookup_impl_witness.b49, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I2_where.type: type = facet_type <@I2 where %impl.elem0.b22 = %empty_tuple.type> [concrete] -// CHECK:STDOUT: %I2.impl_witness.f44a82.1: = impl_witness file.%I2.impl_witness_table, @V.as_type.as.I2.impl(%V) [symbolic] +// CHECK:STDOUT: %I2.impl_witness.450066.1: = impl_witness file.%I2.impl_witness_table, @V.binding.as_type.as.I2.impl(%V) [symbolic] // CHECK:STDOUT: %Self.a70: %J2.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a70 [symbolic] -// CHECK:STDOUT: %I2.impl_witness.f44a82.2: = impl_witness file.%I2.impl_witness_table, @V.as_type.as.I2.impl(%Self.a70) [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.a70 [symbolic] +// CHECK:STDOUT: %I2.impl_witness.450066.2: = impl_witness file.%I2.impl_witness_table, @V.binding.as_type.as.I2.impl(%Self.a70) [symbolic] // CHECK:STDOUT: %I2.lookup_impl_witness.cb8: = lookup_impl_witness %Self.a70, @I2 [symbolic] -// CHECK:STDOUT: %I2.facet: %I2.type = facet_value %Self.as_type, (%I2.lookup_impl_witness.cb8) [symbolic] +// CHECK:STDOUT: %I2.facet: %I2.type = facet_value %Self.binding.as_type, (%I2.lookup_impl_witness.cb8) [symbolic] // CHECK:STDOUT: %impl.elem0.dc2: type = impl_witness_access %I2.lookup_impl_witness.cb8, element0 [symbolic] // CHECK:STDOUT: %pattern_type.cad: type = pattern_type %impl.elem0.dc2 [symbolic] // CHECK:STDOUT: %J2.F2.type: type = fn_type @J2.F2 [concrete] @@ -318,18 +318,18 @@ interface C { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I2.decl: type = interface_decl @I2 [concrete = constants.%I2.type] {} {} // CHECK:STDOUT: %J2.decl.loc9: type = interface_decl @J2 [concrete = constants.%J2.type] {} {} -// CHECK:STDOUT: impl_decl @V.as_type.as.I2.impl [concrete] { +// CHECK:STDOUT: impl_decl @V.binding.as_type.as.I2.impl [concrete] { // CHECK:STDOUT: %V.patt: %pattern_type.dfd = symbolic_binding_pattern V, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %V.ref: %J2.type = name_ref V, %V.loc11_14.1 [symbolic = %V.loc11_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc11_22.1: type = facet_access_type %V.ref [symbolic = %V.as_type.loc11_22.2 (constants.%V.as_type)] -// CHECK:STDOUT: %.loc11_22: type = converted %V.ref, %V.as_type.loc11_22.1 [symbolic = %V.as_type.loc11_22.2 (constants.%V.as_type)] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.ref [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %.loc11_22: type = converted %V.ref, %V.as_type [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] // CHECK:STDOUT: %I2.ref: type = name_ref I2, file.%I2.decl [concrete = constants.%I2.type] // CHECK:STDOUT: %.Self.1: %I2.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.f90] // CHECK:STDOUT: %.Self.ref: %I2.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.f90] // CHECK:STDOUT: %T2.ref: %I2.assoc_type = name_ref T2, @T2.%assoc0 [concrete = constants.%assoc0.25f] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc11_36: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc11_36: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I2.lookup_impl_witness.b49, element0 [symbolic_self = constants.%impl.elem0.b22] // CHECK:STDOUT: %.loc11_43.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc11_43.2: type = converted %.loc11_43.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -343,8 +343,8 @@ interface C { // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc11_14.1: %J2.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)] // CHECK:STDOUT: } -// CHECK:STDOUT: %I2.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @V.as_type.as.I2.impl [concrete] -// CHECK:STDOUT: %I2.impl_witness: = impl_witness %I2.impl_witness_table, @V.as_type.as.I2.impl(constants.%V) [symbolic = @V.as_type.as.I2.impl.%I2.impl_witness (constants.%I2.impl_witness.f44a82.1)] +// CHECK:STDOUT: %I2.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @V.binding.as_type.as.I2.impl [concrete] +// CHECK:STDOUT: %I2.impl_witness: = impl_witness %I2.impl_witness_table, @V.binding.as_type.as.I2.impl(constants.%V) [symbolic = @V.binding.as_type.as.I2.impl.%I2.impl_witness (constants.%I2.impl_witness.450066.1)] // CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %J2.decl.loc13: type = interface_decl @J2 [concrete = constants.%J2.type] {} {} // CHECK:STDOUT: } @@ -370,8 +370,8 @@ interface C { // CHECK:STDOUT: %return.patt: @J2.F2.%pattern_type (%pattern_type.cad) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @J2.F2.%pattern_type (%pattern_type.cad) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc15_14.2: type = facet_access_type @J2.%Self [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %I2.facet.loc15_14.2: %I2.type = facet_value %Self.as_type.loc15_14.2, (constants.%I2.lookup_impl_witness.cb8) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] +// CHECK:STDOUT: %as_type: type = facet_access_type @J2.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %I2.facet.loc15_14.2: %I2.type = facet_value %as_type, (constants.%I2.lookup_impl_witness.cb8) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] // CHECK:STDOUT: %.loc15: %I2.type = converted @J2.%Self, %I2.facet.loc15_14.2 [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] // CHECK:STDOUT: %impl.elem0.loc15_14.2: type = impl_witness_access constants.%I2.lookup_impl_witness.cb8, element0 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.dc2)] // CHECK:STDOUT: %U2.ref: type = name_ref U2, %impl.elem0.loc15_14.2 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.dc2)] @@ -392,10 +392,10 @@ interface C { // CHECK:STDOUT: assoc_const T2:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @V.as_type.as.I2.impl(%V.loc11_14.1: %J2.type) { +// CHECK:STDOUT: generic impl @V.binding.as_type.as.I2.impl(%V.loc11_14.1: %J2.type) { // CHECK:STDOUT: %V.loc11_14.2: %J2.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc11_22.2: type = facet_access_type %V.loc11_14.2 [symbolic = %V.as_type.loc11_22.2 (constants.%V.as_type)] -// CHECK:STDOUT: %I2.impl_witness: = impl_witness file.%I2.impl_witness_table, @V.as_type.as.I2.impl(%V.loc11_14.2) [symbolic = %I2.impl_witness (constants.%I2.impl_witness.f44a82.1)] +// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc11_14.2 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %I2.impl_witness: = impl_witness file.%I2.impl_witness_table, @V.binding.as_type.as.I2.impl(%V.loc11_14.2) [symbolic = %I2.impl_witness (constants.%I2.impl_witness.450066.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -407,9 +407,9 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J2.F2(@J2.%Self: %J2.type) { // CHECK:STDOUT: %Self: %J2.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.a70)] -// CHECK:STDOUT: %Self.as_type.loc15_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc15_14.1 (constants.%Self.as_type)] +// 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: %I2.lookup_impl_witness: = lookup_impl_witness %Self, @I2 [symbolic = %I2.lookup_impl_witness (constants.%I2.lookup_impl_witness.cb8)] -// CHECK:STDOUT: %I2.facet.loc15_14.1: %I2.type = facet_value %Self.as_type.loc15_14.1, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] +// CHECK:STDOUT: %I2.facet.loc15_14.1: %I2.type = facet_value %Self.binding.as_type, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc15_14.1 (constants.%I2.facet)] // CHECK:STDOUT: %impl.elem0.loc15_14.1: type = impl_witness_access %I2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_14.1 (constants.%impl.elem0.dc2)] // CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc15_14.1 [symbolic = %pattern_type (constants.%pattern_type.cad)] // CHECK:STDOUT: @@ -420,16 +420,16 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @T2(constants.%.Self.f90) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @V.as_type.as.I2.impl(constants.%V) { +// CHECK:STDOUT: specific @V.binding.as_type.as.I2.impl(constants.%V) { // CHECK:STDOUT: %V.loc11_14.2 => constants.%V -// CHECK:STDOUT: %V.as_type.loc11_22.2 => constants.%V.as_type -// CHECK:STDOUT: %I2.impl_witness => constants.%I2.impl_witness.f44a82.1 +// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type +// CHECK:STDOUT: %I2.impl_witness => constants.%I2.impl_witness.450066.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V.as_type.as.I2.impl(constants.%Self.a70) { +// CHECK:STDOUT: specific @V.binding.as_type.as.I2.impl(constants.%Self.a70) { // CHECK:STDOUT: %V.loc11_14.2 => constants.%Self.a70 -// CHECK:STDOUT: %V.as_type.loc11_22.2 => constants.%Self.as_type -// CHECK:STDOUT: %I2.impl_witness => constants.%I2.impl_witness.f44a82.2 +// CHECK:STDOUT: %V.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %I2.impl_witness => constants.%I2.impl_witness.450066.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -438,7 +438,7 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.F2(constants.%Self.a70) { // CHECK:STDOUT: %Self => constants.%Self.a70 -// CHECK:STDOUT: %Self.as_type.loc15_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %I2.lookup_impl_witness => constants.%I2.lookup_impl_witness.cb8 // CHECK:STDOUT: %I2.facet.loc15_14.1 => constants.%I2.facet // CHECK:STDOUT: %impl.elem0.loc15_14.1 => constants.%impl.elem0.dc2 @@ -450,8 +450,8 @@ interface C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] // CHECK:STDOUT: %Self.0dd: %A.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.bb6: type = facet_access_type %Self.0dd [symbolic] -// CHECK:STDOUT: %pattern_type.f23: type = pattern_type %Self.as_type.bb6 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.d40: type = symbolic_binding_type Self, 0, %Self.0dd [symbolic] +// CHECK:STDOUT: %pattern_type.c8b: type = pattern_type %Self.binding.as_type.d40 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %A.F.type: type = fn_type @A.F [concrete] // CHECK:STDOUT: %A.F: %A.F.type = struct_value () [concrete] @@ -459,7 +459,7 @@ interface C { // CHECK:STDOUT: %assoc0.2e6: %A.assoc_type = assoc_entity element0, @A.%A.F.decl [concrete] // CHECK:STDOUT: %B.type: type = facet_type <@B> [concrete] // CHECK:STDOUT: %Self.975: %B.type = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type.da9: type = facet_access_type %Self.975 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.88a: type = symbolic_binding_type Self, 0, %Self.975 [symbolic] // CHECK:STDOUT: %B.G.type: type = fn_type @B.G [concrete] // CHECK:STDOUT: %B.G: %B.G.type = struct_value () [concrete] // CHECK:STDOUT: %B.assoc_type: type = assoc_entity_type @B [concrete] @@ -486,18 +486,18 @@ interface C { // CHECK:STDOUT: interface @A { // CHECK:STDOUT: %Self: %A.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self.0dd] // CHECK:STDOUT: %A.F.decl: %A.F.type = fn_decl @A.F [concrete = constants.%A.F] { -// CHECK:STDOUT: %self.patt: @A.F.%pattern_type (%pattern_type.f23) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @A.F.%pattern_type (%pattern_type.f23) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @A.F.%pattern_type (%pattern_type.c8b) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @A.F.%pattern_type (%pattern_type.c8b) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.98f = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.98f = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @A.F.%Self.as_type.loc6_14.1 (%Self.as_type.bb6) = 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.bb6)] { +// CHECK:STDOUT: %self.param: @A.F.%Self.binding.as_type (%Self.binding.as_type.d40) = 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.d40)] { // CHECK:STDOUT: %Self.ref: %A.type = name_ref Self, @A.%Self [symbolic = %Self (constants.%Self.0dd)] -// 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.bb6)] -// 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.bb6)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d40)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d40)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @A.F.%Self.as_type.loc6_14.1 (%Self.as_type.bb6) = bind_name self, %self.param +// CHECK:STDOUT: %self: @A.F.%Self.binding.as_type (%Self.binding.as_type.d40) = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref type = out_param call_param1 // CHECK:STDOUT: %return: ref type = return_slot %return.param // CHECK:STDOUT: } @@ -518,7 +518,7 @@ interface C { // CHECK:STDOUT: %return.patt: = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc14_13.2: type = facet_access_type @B.%Self [symbolic = %Self.as_type.loc14_13.1 (constants.%Self.as_type.da9)] +// CHECK:STDOUT: %as_type: type = facet_access_type @B.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.88a)] // CHECK:STDOUT: %F.ref: = name_ref F, [concrete = ] // CHECK:STDOUT: %return.param: ref = out_param call_param0 // CHECK:STDOUT: %return: ref = return_slot %return.param @@ -535,28 +535,28 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.F(@A.%Self: %A.type) { // CHECK:STDOUT: %Self: %A.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.0dd)] -// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.bb6)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type (constants.%pattern_type.f23)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d40)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.c8b)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @A.F.%Self.as_type.loc6_14.1 (%Self.as_type.bb6)) -> type; +// CHECK:STDOUT: fn(%self.param: @A.F.%Self.binding.as_type (%Self.binding.as_type.d40)) -> type; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @B.G(@B.%Self: %B.type) { // CHECK:STDOUT: %Self: %B.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.975)] -// CHECK:STDOUT: %Self.as_type.loc14_13.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_13.1 (constants.%Self.as_type.da9)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.88a)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.F(constants.%Self.0dd) { // CHECK:STDOUT: %Self => constants.%Self.0dd -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type.bb6 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f23 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d40 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c8b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B.G(constants.%Self.975) { // CHECK:STDOUT: %Self => constants.%Self.975 -// CHECK:STDOUT: %Self.as_type.loc14_13.1 => constants.%Self.as_type.da9 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.88a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- call_with_compound_member_access.carbon @@ -564,8 +564,8 @@ interface C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C.type: type = facet_type <@C> [concrete] // CHECK:STDOUT: %Self: %C.type = bind_symbolic_name Self, 0 [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: %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: %C.F.type: type = fn_type @C.F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.F: %C.F.type = struct_value () [concrete] @@ -574,7 +574,7 @@ interface C { // CHECK:STDOUT: %C.G.type: type = fn_type @C.G [concrete] // CHECK:STDOUT: %C.G: %C.G.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1: %C.assoc_type = assoc_entity element1, @C.%C.G.decl [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %C.lookup_impl_witness: = lookup_impl_witness %Self, @C [symbolic] // CHECK:STDOUT: %.3a5: type = fn_type_with_self_type %C.F.type, %Self [symbolic] // CHECK:STDOUT: %impl.elem0: %.3a5 = impl_witness_access %C.lookup_impl_witness, element0 [symbolic] @@ -602,26 +602,26 @@ interface C { // CHECK:STDOUT: %self.patt: @C.F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @C.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @C.F.%Self.as_type.loc6_14.1 (%Self.as_type) = 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)] { +// CHECK:STDOUT: %self.param: @C.F.%Self.binding.as_type (%Self.binding.as_type) = 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)] { // CHECK:STDOUT: %Self.ref: %C.type = name_ref Self, @C.%Self [symbolic = %Self (constants.%Self)] -// 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)] -// 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)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @C.F.%Self.as_type.loc6_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @C.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %C.assoc_type = assoc_entity element0, %C.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %C.G.decl: %C.G.type = fn_decl @C.G [concrete = constants.%C.G] { // CHECK:STDOUT: %self.patt: @C.G.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @C.G.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @C.G.%Self.as_type.loc8_14.1 (%Self.as_type) = 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)] { +// CHECK:STDOUT: %self.param: @C.G.%Self.binding.as_type (%Self.binding.as_type) = 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)] { // CHECK:STDOUT: %Self.ref: %C.type = name_ref Self, @C.%Self [symbolic = %Self (constants.%Self)] -// 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)] -// 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)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %.loc8_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @C.G.%Self.as_type.loc8_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @C.G.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %C.assoc_type = assoc_entity element1, %C.G.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -634,34 +634,34 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.F(@C.%Self: %C.type) { // CHECK:STDOUT: %Self: %C.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type (constants.%pattern_type)] +// 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: -// CHECK:STDOUT: fn(%self.param: @C.F.%Self.as_type.loc6_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @C.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.G(@C.%Self: %C.type) { // CHECK:STDOUT: %Self: %C.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc8_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_14.1 [symbolic = %pattern_type (constants.%pattern_type)] +// 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: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc8_14.1 [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %C.lookup_impl_witness: = lookup_impl_witness %Self, @C [symbolic = %C.lookup_impl_witness (constants.%C.lookup_impl_witness)] // CHECK:STDOUT: %.loc9_9: type = fn_type_with_self_type constants.%C.F.type, %Self [symbolic = %.loc9_9 (constants.%.3a5)] // CHECK:STDOUT: %impl.elem0.loc9_9.2: @C.G.%.loc9_9 (%.3a5) = impl_witness_access %C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_9.2: = specific_impl_function %impl.elem0.loc9_9.2, @C.F(%Self) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @C.G.%Self.as_type.loc8_14.1 (%Self.as_type)) { +// CHECK:STDOUT: fn(%self.param: @C.G.%Self.binding.as_type (%Self.binding.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref.loc9: @C.G.%Self.as_type.loc8_14.1 (%Self.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref.loc9: @C.G.%Self.binding.as_type (%Self.binding.as_type) = name_ref self, %self // CHECK:STDOUT: %F.ref.loc9: %C.assoc_type = name_ref F, @C.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc9_9.1: @C.G.%.loc9_9 (%.3a5) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc9_9: = bound_method %self.ref.loc9, %impl.elem0.loc9_9.1 // CHECK:STDOUT: %specific_impl_fn.loc9_9.1: = specific_impl_function %impl.elem0.loc9_9.1, @C.F(constants.%Self) [symbolic = %specific_impl_fn.loc9_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc9_12: = bound_method %self.ref.loc9, %specific_impl_fn.loc9_9.1 // CHECK:STDOUT: %.loc9_12: init %empty_tuple.type = call %bound_method.loc9_12(%self.ref.loc9) -// CHECK:STDOUT: %self.ref.loc10: @C.G.%Self.as_type.loc8_14.1 (%Self.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref.loc10: @C.G.%Self.binding.as_type (%Self.binding.as_type) = name_ref self, %self // CHECK:STDOUT: %impl.elem0.loc10: @C.G.%.loc9_9 (%.3a5) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %F.ref.loc10: @C.G.%.loc9_9 (%.3a5) = name_ref F, %impl.elem0.loc10 [symbolic = %impl.elem0.loc9_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_9: = bound_method %self.ref.loc10, %F.ref.loc10 @@ -674,13 +674,13 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.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 5c54256f9bedf..f5b80d4417277 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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -45,7 +45,7 @@ fn Use(T:! I) { // CHECK:STDOUT: %pattern_type.09a: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %Use.type: type = fn_type @Use [concrete] // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.a90: type = fn_type_with_self_type %I.F.type, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.a90 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -72,16 +72,16 @@ fn Use(T:! I) { // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %I.F.decl: %I.F.type = fn_decl @I.F [concrete = constants.%I.F] { -// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.d22) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.d22) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type.3f7) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type.3f7) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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.param: @I.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.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc5_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -93,17 +93,17 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.d22)] +// 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.3f7)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc5_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Use(%T.loc8_8.2: %I.type) { // CHECK:STDOUT: %T.loc8_8.1: %I.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc13_4.2: type = facet_access_type %T.loc8_8.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_8.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_8.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type constants.%I.F.type, %T.loc8_8.1 [symbolic = %.loc13_4.2 (constants.%.a90)] // CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.a90) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] @@ -113,8 +113,8 @@ fn Use(T:! I) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_8.2 [symbolic = %T.loc8_8.1 (constants.%T)] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.%assoc0 [concrete = constants.%assoc0] -// 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: %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: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.a90) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -122,8 +122,8 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // 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 7ec228b3746cf..2a6173ec4afdc 100644 --- a/toolchain/check/testdata/interface/fail_duplicate.carbon +++ b/toolchain/check/testdata/interface/fail_duplicate.carbon @@ -127,8 +127,8 @@ interface Class { } // CHECK:STDOUT: %Self.46e08f.1: %Interface.type.ba0a47.1 = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Interface.type.ba0a47.2: type = facet_type <@Interface.loc13> [concrete] // CHECK:STDOUT: %Self.46e08f.2: %Interface.type.ba0a47.2 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.46e08f.2 [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.46e08f.2 [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Interface.F.type: type = fn_type @Interface.F [concrete] // CHECK:STDOUT: %Interface.F: %Interface.F.type = struct_value () [concrete] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.loc13 [concrete] @@ -157,13 +157,13 @@ interface Class { } // CHECK:STDOUT: %self.patt: @Interface.F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @Interface.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Interface.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.param: @Interface.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.ref: %Interface.type.ba0a47.2 = name_ref Self, @Interface.loc13.%Self [symbolic = %Self (constants.%Self.46e08f.2)] -// 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: %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: } -// CHECK:STDOUT: %self: @Interface.F.%Self.as_type.loc14_14.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @Interface.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -175,15 +175,15 @@ interface Class { } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Interface.F(@Interface.loc13.%Self: %Interface.type.ba0a47.2) { // CHECK:STDOUT: %Self: %Interface.type.ba0a47.2 = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self.46e08f.2)] -// 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: %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: -// CHECK:STDOUT: fn(%self.param: @Interface.F.%Self.as_type.loc14_14.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @Interface.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface.F(constants.%Self.46e08f.2) { // CHECK:STDOUT: %Self => constants.%Self.46e08f.2 -// CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_member_lookup.carbon b/toolchain/check/testdata/interface/fail_member_lookup.carbon index 5ee306d31b377..2cafe151b7f96 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 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %U: %Different.type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.fa7: type = pattern_type %Different.type [concrete] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -103,7 +103,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: %U.ref: %Different.type = name_ref U, %U.loc32_6.2 [symbolic = %U.loc32_6.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.loc32_25.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc32_25.1 (constants.%U.as_type)] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] // CHECK:STDOUT: %.loc32: type = splice_block %Different.ref [concrete = constants.%Different.type] { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Different.ref: type = name_ref Different, file.%Different.decl [concrete = constants.%Different.type] @@ -165,7 +165,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%U.loc32_6.2: %Different.type) { // CHECK:STDOUT: %U.loc32_6.1: %Different.type = bind_symbolic_name U, 0 [symbolic = %U.loc32_6.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc32_25.1: type = facet_access_type %U.loc32_6.1 [symbolic = %U.as_type.loc32_25.1 (constants.%U.as_type)] +// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc32_6.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } @@ -176,6 +176,6 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { // CHECK:STDOUT: %U.loc32_6.1 => constants.%U -// CHECK:STDOUT: %U.as_type.loc32_25.1 => constants.%U.as_type +// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.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 161f0511ef3dd..b3b905ae992e7 100644 --- a/toolchain/check/testdata/interface/fail_modifiers.carbon +++ b/toolchain/check/testdata/interface/fail_modifiers.carbon @@ -157,8 +157,8 @@ interface I { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [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: %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: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -178,13 +178,13 @@ interface I { // CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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.param: @I.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.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc9_22.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -196,15 +196,15 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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: %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: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc9_22.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc9_22.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -213,8 +213,8 @@ interface I { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [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: %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: %I.F.type: type = fn_type @I.F [concrete] // CHECK:STDOUT: %I.F: %I.F.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -234,13 +234,13 @@ interface I { // CHECK:STDOUT: %self.patt: @I.F.%pattern_type (%pattern_type) = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: @I.F.%pattern_type (%pattern_type) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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.param: @I.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.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.F.%Self.as_type.loc9_24.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -252,15 +252,15 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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: %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: -// CHECK:STDOUT: fn(%self.param: @I.F.%Self.as_type.loc9_24.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.F.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc9_24.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/generic.carbon b/toolchain/check/testdata/interface/generic.carbon index e9741832b7f7c..efdbb92fafdc5 100644 --- a/toolchain/check/testdata/interface/generic.carbon +++ b/toolchain/check/testdata/interface/generic.carbon @@ -399,7 +399,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Self.a3e: %Generic.type.227 = bind_symbolic_name Self, 1 [symbolic] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.03b [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.03b [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -484,13 +484,13 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %T.loc10_6.1: %Generic.type.227 = bind_symbolic_name T, 0 [symbolic = %T.loc10_6.1 (constants.%T.03b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc18_6.2: type = facet_access_type %T.loc10_6.1 [symbolic = %T.as_type.loc18_6.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc10_6.1 [symbolic = %T.binding.as_type (constants.%T.binding.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.227 = name_ref T, %T.loc10_6.2 [symbolic = %T.loc10_6.1 (constants.%T.03b)] -// 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: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.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 5db091e988383..96b9d8aceffe3 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -99,9 +99,9 @@ fn CallIndirect() { // CHECK:STDOUT: %ptr.204: type = ptr_type %U.2cb [symbolic] // CHECK:STDOUT: %pattern_type.eee: type = pattern_type %ptr.204 [symbolic] // CHECK:STDOUT: %tuple.type.098: type = tuple_type (type, %A.type.d88, type) [symbolic] -// CHECK:STDOUT: %Self.as_type.707: type = facet_access_type %Self.c6b [symbolic] -// CHECK:STDOUT: %tuple.type.cb0: type = tuple_type (%T.8b3, %Self.as_type.707, %ptr.204) [symbolic] -// CHECK:STDOUT: %pattern_type.44d: type = pattern_type %tuple.type.cb0 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.0eb: type = symbolic_binding_type Self, 1, %Self.c6b [symbolic] +// CHECK:STDOUT: %tuple.type.eee: type = tuple_type (%T.8b3, %Self.binding.as_type.0eb, %ptr.204) [symbolic] +// CHECK:STDOUT: %pattern_type.e5a: type = pattern_type %tuple.type.eee [symbolic] // CHECK:STDOUT: %A.F.type.17a: type = fn_type @A.F, @A(%T.8b3) [symbolic] // CHECK:STDOUT: %A.F.0d8: %A.F.type.17a = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type.ed3: type = assoc_entity_type @A, @A(%T.8b3) [symbolic] @@ -155,43 +155,43 @@ fn CallIndirect() { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.352: %type_where = facet_value %tuple.type.092, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.89a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.352) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ec5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.352) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ed3: %DestroyT.as_type.as.Destroy.impl.Op.type.ec5 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.0cc: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.352) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.092: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.352) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.3da: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.092 = struct_value () [concrete] // CHECK:STDOUT: %ptr.5df: type = ptr_type %tuple.type.092 [concrete] // CHECK:STDOUT: %complete_type.aab: = complete_type_witness %ptr.5df [concrete] -// CHECK:STDOUT: %Destroy.facet.d0e: %Destroy.type = facet_value %tuple.type.092, (%Destroy.impl_witness.89a) [concrete] -// CHECK:STDOUT: %.f61: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.d0e [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.71f: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ed3, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.352) [concrete] +// CHECK:STDOUT: %Destroy.facet.f67: %Destroy.type = facet_value %tuple.type.092, (%Destroy.impl_witness.0cc) [concrete] +// CHECK:STDOUT: %.620: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.f67 [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cd3: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.3da, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.352) [concrete] // CHECK:STDOUT: %facet_value.4e3: %type_where = facet_value %Z, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.18a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dd5: %DestroyT.as_type.as.Destroy.impl.Op.type.18a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.766: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8e8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.766 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.d3e: = complete_type_witness %ptr.fb6 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.97f: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.8e8, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] // CHECK:STDOUT: %T.7bf: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.809: type = pattern_type %A.type.0a4 [concrete] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type.b3a: type = facet_access_type %T.7bf [symbolic] +// CHECK:STDOUT: %T.binding.as_type.4c5: type = symbolic_binding_type T, 0, %T.7bf [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.7bf, @A, @A(%X) [symbolic] // CHECK:STDOUT: %.0c6: type = fn_type_with_self_type %A.F.type.13d, %T.7bf [symbolic] // CHECK:STDOUT: %impl.elem0.dd2: %.0c6 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %tuple.type.af6: type = tuple_type (%X, %T.as_type.b3a, %ptr.fb6) [symbolic] -// CHECK:STDOUT: %pattern_type.512: type = pattern_type %tuple.type.af6 [symbolic] +// CHECK:STDOUT: %tuple.type.6ee: type = tuple_type (%X, %T.binding.as_type.4c5, %ptr.fb6) [symbolic] +// CHECK:STDOUT: %pattern_type.4fd: type = pattern_type %tuple.type.6ee [symbolic] // CHECK:STDOUT: %specific_impl_fn.304: = specific_impl_function %impl.elem0.dd2, @A.F(%X, %T.7bf, %Z) [symbolic] -// CHECK:STDOUT: %require_complete.6ed: = require_complete_type %tuple.type.af6 [symbolic] -// CHECK:STDOUT: %facet_value.caf: %type_where = facet_value %tuple.type.af6, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.cbf: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.caf) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a49: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.caf) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5ab: %DestroyT.as_type.as.Destroy.impl.Op.type.a49 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.fd2: type = ptr_type %tuple.type.af6 [symbolic] -// CHECK:STDOUT: %require_complete.b2a: = require_complete_type %ptr.fd2 [symbolic] -// CHECK:STDOUT: %Destroy.facet.679: %Destroy.type = facet_value %tuple.type.af6, (%Destroy.impl_witness.cbf) [symbolic] -// CHECK:STDOUT: %.b6d: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.679 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b61: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.5ab, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.caf) [symbolic] +// CHECK:STDOUT: %require_complete.439: = require_complete_type %tuple.type.6ee [symbolic] +// CHECK:STDOUT: %facet_value.017: %type_where = facet_value %tuple.type.6ee, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.5b3: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.017) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e71: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.017) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.833: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e71 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.641a: type = ptr_type %tuple.type.6ee [symbolic] +// CHECK:STDOUT: %require_complete.3d6: = require_complete_type %ptr.641a [symbolic] +// CHECK:STDOUT: %Destroy.facet.b1d: %Destroy.type = facet_value %tuple.type.6ee, (%Destroy.impl_witness.5b3) [symbolic] +// CHECK:STDOUT: %.dff: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.b1d [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.446: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.833, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.017) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%A.facet) [concrete] @@ -216,8 +216,8 @@ fn CallIndirect() { // CHECK:STDOUT: %Core.import_ref.0e4: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.31ff4e.1) = 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.8a8b1a.1)] // CHECK:STDOUT: %Copy.impl_witness_table.53c = impl_witness_table (%Core.import_ref.0e4), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -281,8 +281,8 @@ fn CallIndirect() { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] // CHECK:STDOUT: %u.patt: @A.F.%pattern_type.loc6_18 (%pattern_type.eee) = binding_pattern u [concrete] // CHECK:STDOUT: %u.param_patt: @A.F.%pattern_type.loc6_18 (%pattern_type.eee) = value_param_pattern %u.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @A.F.%pattern_type.loc6_25 (%pattern_type.44d) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @A.F.%pattern_type.loc6_25 (%pattern_type.44d) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @A.F.%pattern_type.loc6_25 (%pattern_type.e5a) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @A.F.%pattern_type.loc6_25 (%pattern_type.e5a) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.8b3)] // CHECK:STDOUT: %.loc6_32: @A.F.%A.type (%A.type.d88) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.c6b)] @@ -290,9 +290,9 @@ fn CallIndirect() { // CHECK:STDOUT: %U.ref.loc6_38: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] // CHECK:STDOUT: %ptr.loc6_39: type = ptr_type %U.ref.loc6_38 [symbolic = %ptr.loc6_22.1 (constants.%ptr.204)] // CHECK:STDOUT: %.loc6_40.1: @A.F.%tuple.type.loc6_40.1 (%tuple.type.098) = tuple_literal (%T.ref, %Self.ref, %ptr.loc6_39) -// CHECK:STDOUT: %Self.as_type.loc6_40.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.707)] -// CHECK:STDOUT: %.loc6_40.2: type = converted %Self.ref, %Self.as_type.loc6_40.2 [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.707)] -// CHECK:STDOUT: %.loc6_40.3: type = converted %.loc6_40.1, constants.%tuple.type.cb0 [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.cb0)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0eb)] +// CHECK:STDOUT: %.loc6_40.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0eb)] +// CHECK:STDOUT: %.loc6_40.3: type = converted %.loc6_40.1, constants.%tuple.type.eee [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.eee)] // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] // CHECK:STDOUT: %u.param: @A.F.%ptr.loc6_22.1 (%ptr.204) = value_param call_param0 @@ -301,8 +301,8 @@ fn CallIndirect() { // CHECK:STDOUT: %ptr.loc6_22.2: type = ptr_type %U.ref.loc6_21 [symbolic = %ptr.loc6_22.1 (constants.%ptr.204)] // CHECK:STDOUT: } // CHECK:STDOUT: %u: @A.F.%ptr.loc6_22.1 (%ptr.204) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @A.F.%tuple.type.loc6_40.2 (%tuple.type.cb0) = out_param call_param1 -// CHECK:STDOUT: %return: ref @A.F.%tuple.type.loc6_40.2 (%tuple.type.cb0) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @A.F.%tuple.type.loc6_40.2 (%tuple.type.eee) = out_param call_param1 +// CHECK:STDOUT: %return: ref @A.F.%tuple.type.loc6_40.2 (%tuple.type.eee) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc6_41.1: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %A.F.decl [symbolic = %assoc0.loc6_41.2 (constants.%assoc0.fcb)] // CHECK:STDOUT: @@ -379,11 +379,11 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.d88)] // CHECK:STDOUT: %Self: @A.F.%A.type (%A.type.d88) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.c6b)] // CHECK:STDOUT: %tuple.type.loc6_40.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_40.1 (constants.%tuple.type.098)] -// CHECK:STDOUT: %Self.as_type.loc6_40.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.707)] -// 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.cb0)] -// CHECK:STDOUT: %pattern_type.loc6_25: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_25 (constants.%pattern_type.44d)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0eb)] +// 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.eee)] +// CHECK:STDOUT: %pattern_type.loc6_25: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_25 (constants.%pattern_type.e5a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @A.F.%ptr.loc6_22.1 (%ptr.204)) -> @A.F.%tuple.type.loc6_40.2 (%tuple.type.cb0); +// CHECK:STDOUT: fn(%u.param: @A.F.%ptr.loc6_22.1 (%ptr.204)) -> @A.F.%tuple.type.loc6_40.2 (%tuple.type.eee); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.as.A.impl.F(%U.loc16_8.2: type) { @@ -457,18 +457,18 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc23_22.2: ref %tuple.type.092 = temporary %.loc23_22.1, %Y.as.A.impl.F.call // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%tuple.type.092, () [concrete = constants.%facet_value.352] // CHECK:STDOUT: %.loc23_22.3: %type_where = converted constants.%tuple.type.092, %facet_value.loc23 [concrete = constants.%facet_value.352] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_22.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.ed3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ed3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.352) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.71f] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %.loc23_22.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_22.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3da +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3da, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.352) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cd3] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %.loc23_22.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc23_22: %ptr.5df = addr_of %.loc23_22.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23_22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23_22) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc22: %type_where = converted constants.%Z, %facet_value.loc22 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %u.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %u.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %u.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.97f] +// CHECK:STDOUT: %bound_method.loc22: = bound_method %u.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc22: %ptr.fb6 = addr_of %u.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -476,22 +476,22 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc26_16.1: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic = %T.loc26_16.1 (constants.%T.7bf)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc26_16.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.b3a)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc26_16.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c5)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc26_16.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] // CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%A.F.type.13d, %T.loc26_16.1 [symbolic = %.loc28_4.3 (constants.%.0c6)] // CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] // CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %T.loc26_16.1, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%ptr.fb6) [symbolic = %tuple.type (constants.%tuple.type.af6)] -// CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.6ed)] -// CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.caf)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.cbf)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.679)] -// CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.5 (constants.%.b6d)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.a49)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @CallGeneric.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.a49) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.5ab)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b61)] -// CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.fd2)] -// CHECK:STDOUT: %require_complete.loc28_12.2: = require_complete_type %ptr [symbolic = %require_complete.loc28_12.2 (constants.%require_complete.b2a)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.binding.as_type, constants.%ptr.fb6) [symbolic = %tuple.type (constants.%tuple.type.6ee)] +// CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.439)] +// CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.017)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.5b3)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.b1d)] +// CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.5 (constants.%.dff)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.e71)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @CallGeneric.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.e71) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.833)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc28_12.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.446)] +// CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.641a)] +// CHECK:STDOUT: %require_complete.loc28_12.2: = require_complete_type %ptr [symbolic = %require_complete.loc28_12.2 (constants.%require_complete.3d6)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -505,31 +505,31 @@ fn CallIndirect() { // CHECK:STDOUT: %T.ref: %A.type.0a4 = name_ref T, %T.loc26_16.2 [symbolic = %T.loc26_16.1 (constants.%T.7bf)] // CHECK:STDOUT: %.loc28_4.1: %A.assoc_type.296 = specific_constant @A.%assoc0.loc6_41.1, @A(constants.%X) [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %F.ref: %A.assoc_type.296 = name_ref F, %.loc28_4.1 [concrete = constants.%assoc0.5f6] -// 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.b3a)] -// CHECK:STDOUT: %.loc28_4.2: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.b3a)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c5)] +// CHECK:STDOUT: %.loc28_4.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.4c5)] // CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.dd2)] // 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.loc28_10: %ptr.fb6 = addr_of %u.ref // CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%T.7bf, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.304)] -// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.af6) = temporary_storage -// CHECK:STDOUT: %.loc28_12.2: init @CallGeneric.%tuple.type (%tuple.type.af6) = call %specific_impl_fn.loc28_4.1(%addr.loc28_10) to %.loc28_12.1 -// CHECK:STDOUT: %.loc28_12.3: ref @CallGeneric.%tuple.type (%tuple.type.af6) = temporary %.loc28_12.1, %.loc28_12.2 -// CHECK:STDOUT: %facet_value.loc28_12.1: %type_where = facet_value constants.%tuple.type.af6, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.caf)] -// CHECK:STDOUT: %.loc28_12.4: %type_where = converted constants.%tuple.type.af6, %facet_value.loc28_12.1 [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.caf)] -// CHECK:STDOUT: %impl.elem0.loc28_12: @CallGeneric.%.loc28_12.5 (%.b6d) = impl_witness_access constants.%Destroy.impl_witness.cbf, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.5ab)] +// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.6ee) = temporary_storage +// CHECK:STDOUT: %.loc28_12.2: init @CallGeneric.%tuple.type (%tuple.type.6ee) = call %specific_impl_fn.loc28_4.1(%addr.loc28_10) to %.loc28_12.1 +// CHECK:STDOUT: %.loc28_12.3: ref @CallGeneric.%tuple.type (%tuple.type.6ee) = temporary %.loc28_12.1, %.loc28_12.2 +// CHECK:STDOUT: %facet_value.loc28_12.1: %type_where = facet_value constants.%tuple.type.6ee, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.017)] +// CHECK:STDOUT: %.loc28_12.4: %type_where = converted constants.%tuple.type.6ee, %facet_value.loc28_12.1 [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.017)] +// CHECK:STDOUT: %impl.elem0.loc28_12: @CallGeneric.%.loc28_12.5 (%.dff) = impl_witness_access constants.%Destroy.impl_witness.5b3, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.833)] // CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.3, %impl.elem0.loc28_12 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc28_12, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.caf) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b61)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc28_12, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.017) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.446)] // CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.3, %specific_fn -// CHECK:STDOUT: %addr.loc28_12: @CallGeneric.%ptr (%ptr.fd2) = addr_of %.loc28_12.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) +// CHECK:STDOUT: %addr.loc28_12: @CallGeneric.%ptr (%ptr.641a) = addr_of %.loc28_12.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc27: %type_where = converted constants.%Z, %facet_value.loc27 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %u.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc27: = bound_method %u.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %u.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.97f] +// CHECK:STDOUT: %bound_method.loc27: = bound_method %u.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27: %ptr.fb6 = addr_of %u.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -557,9 +557,9 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.d88 // CHECK:STDOUT: %Self => constants.%Self.c6b // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.098 -// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Self.as_type.707 -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.cb0 -// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.44d +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.0eb +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.eee +// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.e5a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%X) { @@ -590,7 +590,7 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.0a4 // CHECK:STDOUT: %Self => constants.%A.facet // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.5a1 -// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y +// CHECK:STDOUT: %Self.binding.as_type => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.c14 // CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.ac9 // CHECK:STDOUT: } @@ -625,16 +625,16 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.0a4 // CHECK:STDOUT: %Self => constants.%T.7bf // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.5a1 -// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%T.as_type.b3a -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.af6 -// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.512 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type.4c5 +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.6ee +// CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.4fd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%A.facet) { // CHECK:STDOUT: %T.loc26_16.1 => constants.%A.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%Y +// CHECK:STDOUT: %T.binding.as_type => constants.%Y // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness // CHECK:STDOUT: %.loc28_4.3 => constants.%.d35 // CHECK:STDOUT: %impl.elem0.loc28_4.2 => constants.%Y.as.A.impl.F @@ -642,12 +642,12 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type => constants.%tuple.type.092 // CHECK:STDOUT: %require_complete.loc28_12.1 => constants.%complete_type.05d // CHECK:STDOUT: %facet_value.loc28_12.2 => constants.%facet_value.352 -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.89a -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.d0e -// CHECK:STDOUT: %.loc28_12.5 => constants.%.f61 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.ec5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.ed3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.71f +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.0cc +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.f67 +// CHECK:STDOUT: %.loc28_12.5 => constants.%.620 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.092 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.3da +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28 => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.cd3 // CHECK:STDOUT: %ptr => constants.%ptr.5df // CHECK:STDOUT: %require_complete.loc28_12.2 => constants.%complete_type.aab // CHECK:STDOUT: } @@ -660,7 +660,7 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.0a4 // CHECK:STDOUT: %Self => constants.%A.facet // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.5a1 -// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y +// CHECK:STDOUT: %Self.binding.as_type => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.092 // CHECK:STDOUT: %pattern_type.loc6_25 => constants.%pattern_type.48d // CHECK:STDOUT: } @@ -680,9 +680,9 @@ fn CallIndirect() { // CHECK:STDOUT: %U.2cb: type = bind_symbolic_name U, 2 [symbolic] // CHECK:STDOUT: %pattern_type.20f: type = pattern_type %U.2cb [symbolic] // CHECK:STDOUT: %tuple.type.098: type = tuple_type (type, %A.type.d88, type) [symbolic] -// CHECK:STDOUT: %Self.as_type.707: type = facet_access_type %Self.c6b [symbolic] -// CHECK:STDOUT: %tuple.type.325: type = tuple_type (%T.8b3, %Self.as_type.707, %U.2cb) [symbolic] -// CHECK:STDOUT: %pattern_type.491: type = pattern_type %tuple.type.325 [symbolic] +// CHECK:STDOUT: %Self.binding.as_type.0eb: type = symbolic_binding_type Self, 1, %Self.c6b [symbolic] +// CHECK:STDOUT: %tuple.type.253: type = tuple_type (%T.8b3, %Self.binding.as_type.0eb, %U.2cb) [symbolic] +// CHECK:STDOUT: %pattern_type.bca: type = pattern_type %tuple.type.253 [symbolic] // CHECK:STDOUT: %A.F.type.17a: type = fn_type @A.F, @A(%T.8b3) [symbolic] // CHECK:STDOUT: %A.F.0d8: %A.F.type.17a = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type.ed3: type = assoc_entity_type @A, @A(%T.8b3) [symbolic] @@ -742,44 +742,44 @@ fn CallIndirect() { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value.71a: %type_where = facet_value %tuple.type.415, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.37a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.71a) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d92: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.71a) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f1a: %DestroyT.as_type.as.Destroy.impl.Op.type.d92 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.5ea: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.71a) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.6ef: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.71a) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.aa7: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.6ef = struct_value () [concrete] // CHECK:STDOUT: %ptr.ad9: type = ptr_type %tuple.type.415 [concrete] // CHECK:STDOUT: %complete_type.e23: = complete_type_witness %ptr.ad9 [concrete] -// CHECK:STDOUT: %Destroy.facet.684: %Destroy.type = facet_value %tuple.type.415, (%Destroy.impl_witness.37a) [concrete] -// CHECK:STDOUT: %.27f: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.684 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.578: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f1a, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.71a) [concrete] +// CHECK:STDOUT: %Destroy.facet.ec3: %Destroy.type = facet_value %tuple.type.415, (%Destroy.impl_witness.5ea) [concrete] +// CHECK:STDOUT: %.e92: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.ec3 [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.300: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.aa7, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.71a) [concrete] // CHECK:STDOUT: %facet_value.4e3: %type_where = facet_value %Z, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.18a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dd5: %DestroyT.as_type.as.Destroy.impl.Op.type.18a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.766: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.8e8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.766 = struct_value () [concrete] // CHECK:STDOUT: %ptr.fb6: type = ptr_type %Z [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.97f: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.8e8, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.4e3) [concrete] // CHECK:STDOUT: %T.7bf: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.809: type = pattern_type %A.type.0a4 [concrete] // CHECK:STDOUT: %CallGeneric.type: type = fn_type @CallGeneric [concrete] // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.7bf [symbolic] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.7bf [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.7bf, @A, @A(%X) [symbolic] // CHECK:STDOUT: %.0c6: type = fn_type_with_self_type %A.F.type.13d, %T.7bf [symbolic] // CHECK:STDOUT: %impl.elem0: %.0c6 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %tuple.type.5a1: type = tuple_type (type, %A.type.0a4, type) [concrete] -// CHECK:STDOUT: %tuple.type.780: type = tuple_type (%X, %T.as_type, %Z) [symbolic] -// CHECK:STDOUT: %pattern_type.f87: type = pattern_type %tuple.type.780 [symbolic] +// CHECK:STDOUT: %tuple.type.16c: type = tuple_type (%X, %T.binding.as_type, %Z) [symbolic] +// CHECK:STDOUT: %pattern_type.c32: type = pattern_type %tuple.type.16c [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @A.F(%X, %T.7bf, %Z) [symbolic] -// CHECK:STDOUT: %require_complete.4ef: = require_complete_type %tuple.type.780 [symbolic] -// CHECK:STDOUT: %facet_value.52b: %type_where = facet_value %tuple.type.780, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.aa0: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.52b) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.52b) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.24b: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.563: type = ptr_type %tuple.type.780 [symbolic] -// CHECK:STDOUT: %require_complete.147: = require_complete_type %ptr.563 [symbolic] -// CHECK:STDOUT: %Destroy.facet.324: %Destroy.type = facet_value %tuple.type.780, (%Destroy.impl_witness.aa0) [symbolic] -// CHECK:STDOUT: %.a30: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.324 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2bf: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.24b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.52b) [symbolic] +// CHECK:STDOUT: %require_complete.788: = require_complete_type %tuple.type.16c [symbolic] +// CHECK:STDOUT: %facet_value.237: %type_where = facet_value %tuple.type.16c, () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.6de: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.237) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b35: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.237) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.cae: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b35 = struct_value () [symbolic] +// CHECK:STDOUT: %ptr.784: type = ptr_type %tuple.type.16c [symbolic] +// CHECK:STDOUT: %require_complete.8be: = require_complete_type %ptr.784 [symbolic] +// CHECK:STDOUT: %Destroy.facet.837: %Destroy.type = facet_value %tuple.type.16c, (%Destroy.impl_witness.6de) [symbolic] +// CHECK:STDOUT: %.a5a: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.837 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d49: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.cae, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.237) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] // CHECK:STDOUT: %CallGeneric.specific_fn: = specific_function %CallGeneric, @CallGeneric(%A.facet.cdd) [concrete] @@ -793,8 +793,8 @@ fn CallIndirect() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -873,24 +873,24 @@ fn CallIndirect() { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] // CHECK:STDOUT: %u.patt: @A.F.%pattern_type.loc6_18 (%pattern_type.20f) = binding_pattern u [concrete] // CHECK:STDOUT: %u.param_patt: @A.F.%pattern_type.loc6_18 (%pattern_type.20f) = value_param_pattern %u.patt, call_param0 [concrete] -// CHECK:STDOUT: %return.patt: @A.F.%pattern_type.loc6_24 (%pattern_type.491) = return_slot_pattern [concrete] -// CHECK:STDOUT: %return.param_patt: @A.F.%pattern_type.loc6_24 (%pattern_type.491) = out_param_pattern %return.patt, call_param1 [concrete] +// CHECK:STDOUT: %return.patt: @A.F.%pattern_type.loc6_24 (%pattern_type.bca) = return_slot_pattern [concrete] +// CHECK:STDOUT: %return.param_patt: @A.F.%pattern_type.loc6_24 (%pattern_type.bca) = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_13.2 [symbolic = %T (constants.%T.8b3)] // CHECK:STDOUT: %.loc6_31: @A.F.%A.type (%A.type.d88) = specific_constant @A.%Self.1, @A(constants.%T.8b3) [symbolic = %Self (constants.%Self.c6b)] // CHECK:STDOUT: %Self.ref: @A.F.%A.type (%A.type.d88) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.c6b)] // CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] // CHECK:STDOUT: %.loc6_38.1: @A.F.%tuple.type.loc6_38.1 (%tuple.type.098) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37) -// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.707)] -// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.707)] -// CHECK:STDOUT: %.loc6_38.3: type = converted %.loc6_38.1, constants.%tuple.type.325 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.325)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0eb)] +// CHECK:STDOUT: %.loc6_38.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0eb)] +// CHECK:STDOUT: %.loc6_38.3: type = converted %.loc6_38.1, constants.%tuple.type.253 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.253)] // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U.loc6_8.2: type = bind_symbolic_name U, 2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] // CHECK:STDOUT: %u.param: @A.F.%U.loc6_8.1 (%U.2cb) = value_param call_param0 // CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_8.2 [symbolic = %U.loc6_8.1 (constants.%U.2cb)] // CHECK:STDOUT: %u: @A.F.%U.loc6_8.1 (%U.2cb) = bind_name u, %u.param -// CHECK:STDOUT: %return.param: ref @A.F.%tuple.type.loc6_38.2 (%tuple.type.325) = out_param call_param1 -// CHECK:STDOUT: %return: ref @A.F.%tuple.type.loc6_38.2 (%tuple.type.325) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @A.F.%tuple.type.loc6_38.2 (%tuple.type.253) = out_param call_param1 +// CHECK:STDOUT: %return: ref @A.F.%tuple.type.loc6_38.2 (%tuple.type.253) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc6_39.1: @A.%A.assoc_type (%A.assoc_type.ed3) = assoc_entity element0, %A.F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.fcb)] // CHECK:STDOUT: @@ -988,11 +988,11 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type: type = facet_type <@A, @A(%T)> [symbolic = %A.type (constants.%A.type.d88)] // CHECK:STDOUT: %Self: @A.F.%A.type (%A.type.d88) = bind_symbolic_name Self, 1 [symbolic = %Self (constants.%Self.c6b)] // CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.098)] -// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.707)] -// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_8.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.325)] -// CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.491)] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.0eb)] +// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.binding.as_type, %U.loc6_8.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.253)] +// CHECK:STDOUT: %pattern_type.loc6_24: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_24 (constants.%pattern_type.bca)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @A.F.%U.loc6_8.1 (%U.2cb)) -> @A.F.%tuple.type.loc6_38.2 (%tuple.type.325); +// CHECK:STDOUT: fn(%u.param: @A.F.%U.loc6_8.1 (%U.2cb)) -> @A.F.%tuple.type.loc6_38.2 (%tuple.type.253); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @tuple.type.as.A.impl.F(@tuple.type.as.A.impl.%V1.loc14_14.2: type, @tuple.type.as.A.impl.%V2.loc14_25.2: type, @tuple.type.as.A.impl.%W.loc14_36.2: type, %U.loc17_8.2: type) { @@ -1054,18 +1054,18 @@ fn CallIndirect() { // CHECK:STDOUT: %.loc24_39.2: ref %tuple.type.415 = temporary %.loc24_39.1, %tuple.type.as.A.impl.F.call // CHECK:STDOUT: %facet_value.loc24_39: %type_where = facet_value constants.%tuple.type.415, () [concrete = constants.%facet_value.71a] // CHECK:STDOUT: %.loc24_39.3: %type_where = converted constants.%tuple.type.415, %facet_value.loc24_39 [concrete = constants.%facet_value.71a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24_39: = bound_method %.loc24_39.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.f1a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f1a, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.71a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.578] -// CHECK:STDOUT: %bound_method.loc24_39: = bound_method %.loc24_39.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24_39: = bound_method %.loc24_39.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.aa7, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.71a) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.300] +// CHECK:STDOUT: %bound_method.loc24_39: = bound_method %.loc24_39.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24_39: %ptr.ad9 = addr_of %.loc24_39.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24_39: init %empty_tuple.type = call %bound_method.loc24_39(%addr.loc24_39) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24_39: init %empty_tuple.type = call %bound_method.loc24_39(%addr.loc24_39) // CHECK:STDOUT: %facet_value.loc24_38: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc24_38.7: %type_where = converted constants.%Z, %facet_value.loc24_38 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24_38: = bound_method %.loc24_38.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc24_38: = bound_method %.loc24_38.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24_38: = bound_method %.loc24_38.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.97f] +// CHECK:STDOUT: %bound_method.loc24_38: = bound_method %.loc24_38.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc24_38: %ptr.fb6 = addr_of %.loc24_38.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24_38: init %empty_tuple.type = call %bound_method.loc24_38(%addr.loc24_38) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24_38: init %empty_tuple.type = call %bound_method.loc24_38(%addr.loc24_38) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1073,57 +1073,57 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc27_16.1: %A.type.0a4 = bind_symbolic_name T, 0 [symbolic = %T.loc27_16.1 (constants.%T.7bf)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc27_16.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc27_16.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc27_16.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] // CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type constants.%A.F.type.13d, %T.loc27_16.1 [symbolic = %.loc28_4.3 (constants.%.0c6)] // CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.F(constants.%X, %T.loc27_16.1, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.780)] -// CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.4ef)] -// CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.52b)] -// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.aa0)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.324)] -// CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.5 (constants.%.a30)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.as_type.as.Destroy.impl.Op.type.7cc)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op: @CallGeneric.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.7cc) = struct_value () [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.24b)] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28: = specific_function %DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.loc28_12.2) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2bf)] -// CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.563)] -// CHECK:STDOUT: %require_complete.loc28_12.2: = require_complete_type %ptr [symbolic = %require_complete.loc28_12.2 (constants.%require_complete.147)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.binding.as_type, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.16c)] +// CHECK:STDOUT: %require_complete.loc28_12.1: = require_complete_type %tuple.type [symbolic = %require_complete.loc28_12.1 (constants.%require_complete.788)] +// CHECK:STDOUT: %facet_value.loc28_12.2: %type_where = facet_value %tuple.type, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.237)] +// CHECK:STDOUT: %Destroy.impl_witness: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %Destroy.impl_witness (constants.%Destroy.impl_witness.6de)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.837)] +// CHECK:STDOUT: %.loc28_12.5: type = fn_type_with_self_type constants.%Destroy.Op.type, %Destroy.facet [symbolic = %.loc28_12.5 (constants.%.a5a)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.loc28_12.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.type (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b35)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op: @CallGeneric.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b35) = struct_value () [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cae)] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.loc28_12.2) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d49)] +// CHECK:STDOUT: %ptr: type = ptr_type %tuple.type [symbolic = %ptr (constants.%ptr.784)] +// CHECK:STDOUT: %require_complete.loc28_12.2: = require_complete_type %ptr [symbolic = %require_complete.loc28_12.2 (constants.%require_complete.8be)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %A.type.0a4 = name_ref T, %T.loc27_16.2 [symbolic = %T.loc27_16.1 (constants.%T.7bf)] // CHECK:STDOUT: %.loc28_4.1: %A.assoc_type.296 = specific_constant @A.%assoc0.loc6_39.1, @A(constants.%X) [concrete = constants.%assoc0.5f6] // CHECK:STDOUT: %F.ref: %A.assoc_type.296 = name_ref F, %.loc28_4.1 [concrete = constants.%assoc0.5f6] -// 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.2: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] +// 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.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] // CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.0c6) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %.loc28_11.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.F(constants.%X, constants.%T.7bf, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.780) = temporary_storage +// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.16c) = temporary_storage // CHECK:STDOUT: %.loc28_11.2: ref %Z = temporary_storage // CHECK:STDOUT: %.loc28_11.3: init %Z = class_init (), %.loc28_11.2 [concrete = constants.%Z.val] // CHECK:STDOUT: %.loc28_11.4: ref %Z = temporary %.loc28_11.2, %.loc28_11.3 // CHECK:STDOUT: %.loc28_11.5: ref %Z = converted %.loc28_11.1, %.loc28_11.4 // CHECK:STDOUT: %.loc28_11.6: %Z = bind_value %.loc28_11.5 -// CHECK:STDOUT: %.loc28_12.2: init @CallGeneric.%tuple.type (%tuple.type.780) = call %specific_impl_fn.loc28_4.1(%.loc28_11.6) to %.loc28_12.1 -// CHECK:STDOUT: %.loc28_12.3: ref @CallGeneric.%tuple.type (%tuple.type.780) = temporary %.loc28_12.1, %.loc28_12.2 -// CHECK:STDOUT: %facet_value.loc28_12.1: %type_where = facet_value constants.%tuple.type.780, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.52b)] -// CHECK:STDOUT: %.loc28_12.4: %type_where = converted constants.%tuple.type.780, %facet_value.loc28_12.1 [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.52b)] -// CHECK:STDOUT: %impl.elem0.loc28_12: @CallGeneric.%.loc28_12.5 (%.a30) = impl_witness_access constants.%Destroy.impl_witness.aa0, element0 [symbolic = %DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.24b)] +// CHECK:STDOUT: %.loc28_12.2: init @CallGeneric.%tuple.type (%tuple.type.16c) = call %specific_impl_fn.loc28_4.1(%.loc28_11.6) to %.loc28_12.1 +// CHECK:STDOUT: %.loc28_12.3: ref @CallGeneric.%tuple.type (%tuple.type.16c) = temporary %.loc28_12.1, %.loc28_12.2 +// CHECK:STDOUT: %facet_value.loc28_12.1: %type_where = facet_value constants.%tuple.type.16c, () [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.237)] +// CHECK:STDOUT: %.loc28_12.4: %type_where = converted constants.%tuple.type.16c, %facet_value.loc28_12.1 [symbolic = %facet_value.loc28_12.2 (constants.%facet_value.237)] +// CHECK:STDOUT: %impl.elem0.loc28_12: @CallGeneric.%.loc28_12.5 (%.a5a) = impl_witness_access constants.%Destroy.impl_witness.6de, element0 [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.cae)] // CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.3, %impl.elem0.loc28_12 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc28_12, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.52b) [symbolic = %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2bf)] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc28_12, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.237) [symbolic = %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28 (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d49)] // CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.3, %specific_fn -// CHECK:STDOUT: %addr.loc28_12: @CallGeneric.%ptr (%ptr.563) = addr_of %.loc28_12.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28_12: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) +// CHECK:STDOUT: %addr.loc28_12: @CallGeneric.%ptr (%ptr.784) = addr_of %.loc28_12.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc28_12: init %empty_tuple.type = call %bound_method.loc28_12.2(%addr.loc28_12) // CHECK:STDOUT: %facet_value.loc28_11: %type_where = facet_value constants.%Z, () [concrete = constants.%facet_value.4e3] // CHECK:STDOUT: %.loc28_11.7: %type_where = converted constants.%Z, %facet_value.loc28_11 [concrete = constants.%facet_value.4e3] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_11.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.dd5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e7d] -// CHECK:STDOUT: %bound_method.loc28_11: = bound_method %.loc28_11.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc28_11.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.8e8, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4e3) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.97f] +// CHECK:STDOUT: %bound_method.loc28_11: = bound_method %.loc28_11.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc28_11: %ptr.fb6 = addr_of %.loc28_11.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28_11: init %empty_tuple.type = call %bound_method.loc28_11(%addr.loc28_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc28_11: init %empty_tuple.type = call %bound_method.loc28_11(%addr.loc28_11) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1153,9 +1153,9 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.d88 // CHECK:STDOUT: %Self => constants.%Self.c6b // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.098 -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Self.as_type.707 -// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.325 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.491 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.0eb +// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.253 +// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.bca // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { @@ -1209,7 +1209,7 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.ff4 // CHECK:STDOUT: %Self => constants.%A.facet.452 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.42f -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.30b +// CHECK:STDOUT: %Self.binding.as_type => constants.%tuple.type.30b // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.8ae // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.d4a // CHECK:STDOUT: } @@ -1269,16 +1269,16 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.0a4 // CHECK:STDOUT: %Self => constants.%T.7bf // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.5a1 -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%T.as_type -// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.780 -// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.f87 +// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.16c +// CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.c32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%A.facet.cdd) { // CHECK:STDOUT: %T.loc27_16.1 => constants.%A.facet.cdd // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%tuple.type.a46 +// CHECK:STDOUT: %T.binding.as_type => constants.%tuple.type.a46 // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness.c8b // CHECK:STDOUT: %.loc28_4.3 => constants.%.9b3 // CHECK:STDOUT: %impl.elem0.loc28_4.2 => constants.%tuple.type.as.A.impl.F.e39 @@ -1286,12 +1286,12 @@ fn CallIndirect() { // CHECK:STDOUT: %tuple.type => constants.%tuple.type.415 // CHECK:STDOUT: %require_complete.loc28_12.1 => constants.%complete_type.aa8 // CHECK:STDOUT: %facet_value.loc28_12.2 => constants.%facet_value.71a -// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.37a -// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.684 -// CHECK:STDOUT: %.loc28_12.5 => constants.%.27f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.as_type.as.Destroy.impl.Op.type.d92 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op => constants.%DestroyT.as_type.as.Destroy.impl.Op.f1a -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.loc28 => constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.578 +// CHECK:STDOUT: %Destroy.impl_witness => constants.%Destroy.impl_witness.5ea +// CHECK:STDOUT: %Destroy.facet => constants.%Destroy.facet.ec3 +// CHECK:STDOUT: %.loc28_12.5 => constants.%.e92 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.type.6ef +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.aa7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.loc28 => constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.300 // CHECK:STDOUT: %ptr => constants.%ptr.ad9 // CHECK:STDOUT: %require_complete.loc28_12.2 => constants.%complete_type.e23 // CHECK:STDOUT: } @@ -1303,7 +1303,7 @@ fn CallIndirect() { // CHECK:STDOUT: %A.type => constants.%A.type.0a4 // CHECK:STDOUT: %Self => constants.%A.facet.cdd // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.5a1 -// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.a46 +// CHECK:STDOUT: %Self.binding.as_type => constants.%tuple.type.a46 // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.415 // CHECK:STDOUT: %pattern_type.loc6_24 => constants.%pattern_type.0b2 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/local.carbon b/toolchain/check/testdata/interface/local.carbon index 189432091a98f..9348267f251cd 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 = bind_symbolic_name Self, 0 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.768: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.7db: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %I.G.type: type = fn_type @I.G [concrete] // CHECK:STDOUT: %I.G: %I.G.type = struct_value () [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -55,16 +55,16 @@ fn F() { // CHECK:STDOUT: interface @I { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self] // CHECK:STDOUT: %I.G.decl: %I.G.type = fn_decl @I.G [concrete = constants.%I.G] { -// CHECK:STDOUT: %self.patt: @I.G.%pattern_type (%pattern_type.768) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @I.G.%pattern_type (%pattern_type.768) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @I.G.%pattern_type (%pattern_type.7db) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @I.G.%pattern_type (%pattern_type.7db) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.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.param: @I.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.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @I.G.%Self.as_type.loc17_16.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @I.G.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -112,10 +112,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.G(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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.768)] +// 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.7db)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.G.%Self.as_type.loc17_16.1 (%Self.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.G.%Self.binding.as_type (%Self.binding.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.I.impl.G(%self.param: %empty_tuple.type) { @@ -125,13 +125,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.768 +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7db // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.G(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => 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 a9adf4fcc57ed..ba92f0d945826 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -73,7 +73,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessGeneric.type: type = fn_type @AccessGeneric [concrete] // CHECK:STDOUT: %AccessGeneric: %AccessGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.a60: = require_complete_type %Interface.type.cc2 [symbolic] -// CHECK:STDOUT: %I.as_type.021: type = facet_access_type %I.01f [symbolic] +// CHECK:STDOUT: %I.binding.as_type.c56: type = symbolic_binding_type I, 1, %I.01f [symbolic] // CHECK:STDOUT: %Interface.lookup_impl_witness.387: = lookup_impl_witness %I.01f, @Interface, @Interface(%T.8b3) [symbolic] // CHECK:STDOUT: %impl.elem0.97f: %ptr.79f = impl_witness_access %Interface.lookup_impl_witness.387, element0 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] @@ -101,7 +101,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %Self.c67: %Interface.type.02f = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Interface.assoc_type.aaa: type = assoc_entity_type @Interface, @Interface(%i32) [concrete] // CHECK:STDOUT: %assoc0.04e: %Interface.assoc_type.aaa = assoc_entity element0, @Interface.%X [concrete] -// CHECK:STDOUT: %I.as_type.48f: type = facet_access_type %I.328 [symbolic] +// CHECK:STDOUT: %I.binding.as_type.bb1: type = symbolic_binding_type I, 0, %I.328 [symbolic] // CHECK:STDOUT: %Interface.lookup_impl_witness.252: = lookup_impl_witness %I.328, @Interface, @Interface(%i32) [symbolic] // CHECK:STDOUT: %complete_type.3d0: = complete_type_witness %ptr.235 [concrete] // CHECK:STDOUT: %impl.elem0.031: %ptr.235 = impl_witness_access %Interface.lookup_impl_witness.252, element0 [symbolic] @@ -226,7 +226,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %require_complete.loc9_10: = require_complete_type %Interface.type.loc8_43.1 [symbolic = %require_complete.loc9_10 (constants.%require_complete.a60)] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc8_18.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.0d9)] // CHECK:STDOUT: %assoc0: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.0d9) = assoc_entity element0, @Interface.%X [symbolic = %assoc0 (constants.%assoc0.7e7)] -// CHECK:STDOUT: %I.as_type.loc9_11.2: type = facet_access_type %I.loc8_28.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.021)] +// CHECK:STDOUT: %I.binding.as_type: type = symbolic_binding_type I, 1, %I.loc8_28.1 [symbolic = %I.binding.as_type (constants.%I.binding.as_type.c56)] // CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc8_28.1, @Interface, @Interface(%T.loc8_18.1) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.387)] // CHECK:STDOUT: %impl.elem0.loc9_11.3: @AccessGeneric.%ptr.loc8_50.1 (%ptr.79f) = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_11.3 (constants.%impl.elem0.97f)] // CHECK:STDOUT: %require_complete.loc9_13: = require_complete_type %ptr.loc8_50.1 [symbolic = %require_complete.loc9_13 (constants.%require_complete.6e5)] @@ -243,8 +243,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.cc2) = name_ref I, %I.loc8_28.2 [symbolic = %I.loc8_28.1 (constants.%I.01f)] // CHECK:STDOUT: %.loc9_11.1: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.0d9) = specific_constant @X.%assoc0, @Interface(constants.%T.8b3) [symbolic = %assoc0 (constants.%assoc0.7e7)] // CHECK:STDOUT: %X.ref: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.0d9) = name_ref X, %.loc9_11.1 [symbolic = %assoc0 (constants.%assoc0.7e7)] -// 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.021)] -// CHECK:STDOUT: %.loc9_11.2: type = converted %I.ref, %I.as_type.loc9_11.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.021)] +// CHECK:STDOUT: %I.as_type: type = facet_access_type %I.ref [symbolic = %I.binding.as_type (constants.%I.binding.as_type.c56)] +// CHECK:STDOUT: %.loc9_11.2: type = converted %I.ref, %I.as_type [symbolic = %I.binding.as_type (constants.%I.binding.as_type.c56)] // CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%ptr.loc8_50.1 (%ptr.79f) = impl_witness_access constants.%Interface.lookup_impl_witness.387, element0 [symbolic = %impl.elem0.loc9_11.3 (constants.%impl.elem0.97f)] // CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%.loc9_11.4 (%.1cc) = impl_witness_access constants.%Copy.lookup_impl_witness.cb2, element0 [symbolic = %impl.elem0.loc9_11.4 (constants.%impl.elem0.751)] // CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %impl.elem0.loc9_11.1, %impl.elem0.loc9_11.2 [symbolic = %bound_method.loc9_11.3 (constants.%bound_method.2cd)] @@ -259,7 +259,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.loc12_19.1: %Interface.type.02f = bind_symbolic_name I, 0 [symbolic = %I.loc12_19.1 (constants.%I.328)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc12_19.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.48f)] +// CHECK:STDOUT: %I.binding.as_type: type = symbolic_binding_type I, 0, %I.loc12_19.1 [symbolic = %I.binding.as_type (constants.%I.binding.as_type.bb1)] // CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc12_19.1, @Interface, @Interface(constants.%i32) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.252)] // 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.031)] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %impl.elem0.loc13_11.3, constants.%ptr.as.Copy.impl.Op.9fb [symbolic = %ptr.as.Copy.impl.Op.bound (constants.%ptr.as.Copy.impl.Op.bound)] @@ -270,8 +270,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.ref: %Interface.type.02f = name_ref I, %I.loc12_19.2 [symbolic = %I.loc12_19.1 (constants.%I.328)] // CHECK:STDOUT: %.loc13_11.1: %Interface.assoc_type.aaa = specific_constant @X.%assoc0, @Interface(constants.%i32) [concrete = constants.%assoc0.04e] // CHECK:STDOUT: %X.ref: %Interface.assoc_type.aaa = name_ref X, %.loc13_11.1 [concrete = constants.%assoc0.04e] -// 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.48f)] -// CHECK:STDOUT: %.loc13_11.2: type = converted %I.ref, %I.as_type.loc13_11.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.48f)] +// CHECK:STDOUT: %I.as_type: type = facet_access_type %I.ref [symbolic = %I.binding.as_type (constants.%I.binding.as_type.bb1)] +// CHECK:STDOUT: %.loc13_11.2: type = converted %I.ref, %I.as_type [symbolic = %I.binding.as_type (constants.%I.binding.as_type.bb1)] // CHECK:STDOUT: %impl.elem0.loc13_11.1: %ptr.235 = impl_witness_access constants.%Interface.lookup_impl_witness.252, element0 [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.031)] // CHECK:STDOUT: %impl.elem0.loc13_11.2: %.9e2 = impl_witness_access constants.%Copy.impl_witness.a93, element0 [concrete = constants.%ptr.as.Copy.impl.Op.9fb] // CHECK:STDOUT: %bound_method.loc13_11.1: = bound_method %impl.elem0.loc13_11.1, %impl.elem0.loc13_11.2 [symbolic = %ptr.as.Copy.impl.Op.bound (constants.%ptr.as.Copy.impl.Op.bound)] diff --git a/toolchain/check/testdata/interface/self.carbon b/toolchain/check/testdata/interface/self.carbon index 623e0643c8448..4cd39a5d7b103 100644 --- a/toolchain/check/testdata/interface/self.carbon +++ b/toolchain/check/testdata/interface/self.carbon @@ -21,8 +21,8 @@ interface UseSelf { // CHECK:STDOUT: constants { // CHECK:STDOUT: %UseSelf.type: type = facet_type <@UseSelf> [concrete] // CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [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: %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: %UseSelf.F.type: type = fn_type @UseSelf.F [concrete] // CHECK:STDOUT: %UseSelf.F: %UseSelf.F.type = struct_value () [concrete] // CHECK:STDOUT: %UseSelf.assoc_type: type = assoc_entity_type @UseSelf [concrete] @@ -45,17 +45,17 @@ interface UseSelf { // CHECK:STDOUT: %return.param_patt: @UseSelf.F.%pattern_type (%pattern_type) = out_param_pattern %return.patt, call_param1 [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.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %.loc16_25: type = converted %Self.ref.loc16_25, %Self.as_type.loc16_25 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] -// CHECK:STDOUT: %self.param: @UseSelf.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.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: type = converted %Self.ref.loc16_25, %Self.as_type.loc16_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %self.param: @UseSelf.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.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = bind_name self, %self.param -// CHECK:STDOUT: %return.param: ref @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = return_slot %return.param +// CHECK:STDOUT: %self: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %return.param: ref @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %UseSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -67,15 +67,15 @@ interface UseSelf { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @UseSelf.F(@UseSelf.%Self: %UseSelf.type) { // CHECK:STDOUT: %Self: %UseSelf.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// 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: %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: -// CHECK:STDOUT: fn(%self.param: @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type)) -> @UseSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type); +// CHECK:STDOUT: fn(%self.param: @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type)) -> @UseSelf.F.%Self.binding.as_type (%Self.binding.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/builtins.carbon b/toolchain/check/testdata/interop/cpp/builtins.carbon index fc8bd7095edc3..a19493f49c4c6 100644 --- a/toolchain/check/testdata/interop/cpp/builtins.carbon +++ b/toolchain/check/testdata/interop/cpp/builtins.carbon @@ -556,8 +556,8 @@ fn F() { // CHECK:STDOUT: %unsigned_int.foo: %unsigned_int.foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %unsigned_int, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ba: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e27: %DestroyT.as_type.as.Destroy.impl.Op.type.6ba = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.48e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.d14: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.48e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -603,11 +603,11 @@ fn F() { // CHECK:STDOUT: %x: %u32 = bind_name x, %.loc13_33.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%unsigned_int, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3: %type_where = converted constants.%unsigned_int, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %unsigned_int.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e27 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %unsigned_int.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d14 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %unsigned_int.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc12: = bound_method %unsigned_int.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc12: %ptr.d47 = addr_of %unsigned_int.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/access.carbon b/toolchain/check/testdata/interop/cpp/class/access.carbon index 69b39203dfa78..b76043e387f1f 100644 --- a/toolchain/check/testdata/interop/cpp/class/access.carbon +++ b/toolchain/check/testdata/interop/cpp/class/access.carbon @@ -534,8 +534,8 @@ fn F() { // CHECK:STDOUT: %C.foo: %C.foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -570,11 +570,11 @@ fn F() { // CHECK:STDOUT: %C.foo.call: init %empty_tuple.type = call imports.%C.foo.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.d9e = addr_of %.loc8_11.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/constructor.carbon b/toolchain/check/testdata/interop/cpp/class/constructor.carbon index 0898f0888c128..8fc0880643fd8 100644 --- a/toolchain/check/testdata/interop/cpp/class/constructor.carbon +++ b/toolchain/check/testdata/interop/cpp/class/constructor.carbon @@ -282,8 +282,8 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -321,11 +321,11 @@ fn F() { // CHECK:STDOUT: %c: %C = bind_name c, %.loc8_26.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_26.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_26.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_26.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_26.2: %ptr.d9e = addr_of %.loc8_26.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_26.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_26.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -363,8 +363,8 @@ fn F() { // CHECK:STDOUT: %int_456.d17: %i32 = int_value 456 [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -420,11 +420,11 @@ fn F() { // CHECK:STDOUT: %c: %C = bind_name c, %.loc8_34.4 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_34.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_34.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_34.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_34: = bound_method %.loc8_34.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_34: = bound_method %.loc8_34.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_34.2: %ptr.d9e = addr_of %.loc8_34.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_34(%addr.loc8_34.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_34(%addr.loc8_34.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -464,8 +464,8 @@ fn F() { // CHECK:STDOUT: %int_456.d17: %i32 = int_value 456 [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -543,18 +543,18 @@ fn F() { // CHECK:STDOUT: %c2: %C = bind_name c2, %.loc9_35.4 // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_35.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_35: = bound_method %.loc9_35.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_35: = bound_method %.loc9_35.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_35.2: %ptr.d9e = addr_of %.loc9_35.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_35(%addr.loc9_35.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_35(%addr.loc9_35.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_27.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_27.2: %ptr.d9e = addr_of %.loc8_27.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -594,8 +594,8 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk.d98342.2: %C__carbon_thunk.type.65f120.2 = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -681,18 +681,18 @@ fn F() { // CHECK:STDOUT: %c2: %C = bind_name c2, %.loc9_28.4 // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_28.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_28.2: %ptr.d9e = addr_of %.loc9_28.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.d9e = addr_of %.loc8_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -740,11 +740,11 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk.d98342.3: %C__carbon_thunk.type.65f120.3 = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.b21: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b21) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.b21) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.999: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -850,32 +850,32 @@ fn F() { // CHECK:STDOUT: %c3: ref %C = bind_name c3, %c3.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value.b21] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.d9e = addr_of %c3.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) // CHECK:STDOUT: %facet_value.loc9_27: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] // CHECK:STDOUT: %.loc9_27.3: %type_where = converted bool, %facet_value.loc9_27 [concrete = constants.%facet_value.3f5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_27: = bound_method %.loc9_27.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_27: = bound_method %.loc9_27.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_27.2: = bound_method %.loc9_27.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9_27.2: = bound_method %.loc9_27.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_27: %ptr.bb2 = addr_of %.loc9_27.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27.2(%addr.loc9_27) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27.2(%addr.loc9_27) // CHECK:STDOUT: %facet_value.loc9_3: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%C, %facet_value.loc9_3 [concrete = constants.%facet_value.b21] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_3: = bound_method %c2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_3: = bound_method %c2.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %c2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %c2.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc9_3: %ptr.d9e = addr_of %c2.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_3: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_3: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value.b21] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %c1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -921,8 +921,8 @@ fn F() { // CHECK:STDOUT: %bound_method.80c: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -991,11 +991,11 @@ fn F() { // CHECK:STDOUT: %c2: %C = bind_name c2, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_28.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_28.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_28: = bound_method %.loc8_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_28: = bound_method %.loc8_28.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_28.2: %ptr.d9e = addr_of %.loc8_28.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_28(%addr.loc8_28.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_28(%addr.loc8_28.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1047,8 +1047,8 @@ fn F() { // CHECK:STDOUT: %bound_method.80c: = bound_method %int_8.b85, %Core.IntLiteral.as.As.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1155,18 +1155,18 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, [concrete = ] // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_28.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_28.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_28: = bound_method %.loc9_28.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_28.2: %ptr.d9e = addr_of %.loc9_28.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_28(%addr.loc9_28.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_31: = bound_method %.loc8_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.d9e = addr_of %.loc8_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_31(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/method.carbon b/toolchain/check/testdata/interop/cpp/class/method.carbon index 7be5febaf93f6..59e6ffea048f8 100644 --- a/toolchain/check/testdata/interop/cpp/class/method.carbon +++ b/toolchain/check/testdata/interop/cpp/class/method.carbon @@ -328,12 +328,12 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %HasQualifiers.F.efd4e4.2: %HasQualifiers.F.type.d208f0.2 = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -391,18 +391,18 @@ fn Call(e: Cpp.ExplicitObjectParam, n: i32, a: Cpp.Another) { // CHECK:STDOUT: %b: ref %ptr.235 = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%ptr.235, %facet_value.loc9 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_3: %ptr.5d5 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%i32, %facet_value.loc8 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_3: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon index 1333ace1277d2..5fbf45ccb5581 100644 --- a/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/anonymous.carbon @@ -65,14 +65,14 @@ fn G() { // CHECK:STDOUT: %F__carbon_thunk.0cd6a8.2: %F__carbon_thunk.type.eda1ac.2 = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.597: %type_where = facet_value %.bb7, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.237: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.597) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c08: %DestroyT.as_type.as.Destroy.impl.Op.type.237 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.52d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.597) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.afc: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.52d = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b21: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b21) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.b21) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.21d: %type_where = facet_value %.4f0, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a40: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.21d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.d51: %DestroyT.as_type.as.Destroy.impl.Op.type.a40 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.02d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.21d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.246: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.02d = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -139,25 +139,25 @@ fn G() { // CHECK:STDOUT: %F__carbon_thunk.call.loc10: init %empty_tuple.type = call imports.%F__carbon_thunk.decl.e1b8ec.2(%addr.loc10_11.2, %addr.loc10_22) // CHECK:STDOUT: %facet_value.loc10_20: %type_where = facet_value constants.%.bb7, () [concrete = constants.%facet_value.597] // CHECK:STDOUT: %.loc10_20.3: %type_where = converted constants.%.bb7, %facet_value.loc10_20 [concrete = constants.%facet_value.597] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_20: = bound_method %.loc10_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c08 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_20: = bound_method %.loc10_20.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.afc // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_20: = bound_method %.loc10_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_20: = bound_method %.loc10_20.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_20: %ptr.73d = addr_of %.loc10_20.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_20: init %empty_tuple.type = call %bound_method.loc10_20(%addr.loc10_20) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_20: init %empty_tuple.type = call %bound_method.loc10_20(%addr.loc10_20) // CHECK:STDOUT: %facet_value.loc10_11: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.b21] // CHECK:STDOUT: %.loc10_11.4: %type_where = converted constants.%C, %facet_value.loc10_11 [concrete = constants.%facet_value.b21] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_11: = bound_method %.loc10_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_11: = bound_method %.loc10_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_11: = bound_method %.loc10_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_11: = bound_method %.loc10_11.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_11.3: %ptr.d9e = addr_of %.loc10_11.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_11: init %empty_tuple.type = call %bound_method.loc10_11(%addr.loc10_11.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_11: init %empty_tuple.type = call %bound_method.loc10_11(%addr.loc10_11.3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%.4f0, () [concrete = constants.%facet_value.21d] // CHECK:STDOUT: %.loc8_12.3: %type_where = converted constants.%.4f0, %facet_value.loc8 [concrete = constants.%facet_value.21d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.d51 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.246 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_12: %ptr.793 = addr_of %.loc8_12.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/enum/copy.carbon b/toolchain/check/testdata/interop/cpp/enum/copy.carbon index a9bd26ab0d862..25929d1f2be16 100644 --- a/toolchain/check/testdata/interop/cpp/enum/copy.carbon +++ b/toolchain/check/testdata/interop/cpp/enum/copy.carbon @@ -40,8 +40,8 @@ fn F() { // CHECK:STDOUT: %int_1: %Enum = int_value 1 [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %Enum, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ae5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5fc: %DestroyT.as_type.as.Destroy.impl.Op.type.ae5 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cd9: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.0d9: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cd9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.47b: type = ptr_type %Enum [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -82,11 +82,11 @@ fn F() { // CHECK:STDOUT: assign %a.ref.loc10, %b.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%Enum, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%Enum, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fc +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0d9 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.47b = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon index b41247fdd3b02..04b09154ec716 100644 --- a/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon +++ b/toolchain/check/testdata/interop/cpp/function/arithmetic_types_bridged.carbon @@ -572,8 +572,8 @@ fn F() { // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %true, %bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.999: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -605,11 +605,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_15) // CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.bb2 = addr_of %.loc8_11.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.2(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.2(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -633,8 +633,8 @@ fn F() { // CHECK:STDOUT: %bool.as.Copy.impl.Op.bound: = bound_method %false, %bool.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.999: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -666,11 +666,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_16) // CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.bb2 = addr_of %.loc8_11.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.2(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.2(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -724,8 +724,8 @@ fn F() { // CHECK:STDOUT: %bound_method.db2: = bound_method %int_-1.416, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i8, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.489: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.054: %DestroyT.as_type.as.Destroy.impl.Op.type.489 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bf3: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.5d0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bf3 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -776,11 +776,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i8, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.7: %type_where = converted constants.%i8, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%DestroyT.as_type.as.Destroy.impl.Op.054 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5d0 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.5c1 = addr_of %.loc8_11.6 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -825,8 +825,8 @@ fn F() { // CHECK:STDOUT: %bound_method.501: = bound_method %int_1.e80, %UInt.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %u8, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.9cc: %DestroyT.as_type.as.Destroy.impl.Op.type.7cc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a37: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.5d5: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a37 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -869,11 +869,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_12) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%u8, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.5: %type_where = converted constants.%u8, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.9cc +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.5d5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.3e8 = addr_of %.loc8_11.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -899,16 +899,16 @@ fn F() { // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert: %Core.CharLiteral.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] // CHECK:STDOUT: %Core.CharLiteral.as.ImplicitAs.impl.Convert.bound: = bound_method %.d16, %Core.CharLiteral.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_88: %char = int_value 88 [concrete] -// CHECK:STDOUT: %Copy.impl_witness.9ba: = impl_witness imports.%Copy.impl_witness_table.0e0 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.9ba7: = impl_witness imports.%Copy.impl_witness_table.0e0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba7) [concrete] // CHECK:STDOUT: %.1ed: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.type: type = fn_type @char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op: %char.as.Copy.impl.Op.type = struct_value () [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.bound: = bound_method %int_88, %char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %char, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6ed: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.9d8: %DestroyT.as_type.as.Destroy.impl.Op.type.6ed = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c38: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.1d3: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c38 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -939,7 +939,7 @@ fn F() { // CHECK:STDOUT: %.loc8_11.2: %char = value_of_initializer %Core.CharLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_88] // CHECK:STDOUT: %.loc8_11.3: %char = converted %.loc8_11.1, %.loc8_11.2 [concrete = constants.%int_88] // CHECK:STDOUT: %.loc8_11.4: ref %char = temporary_storage -// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.1ed = impl_witness_access constants.%Copy.impl_witness.9ba, element0 [concrete = constants.%char.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc8_11.2: %.1ed = impl_witness_access constants.%Copy.impl_witness.9ba7, element0 [concrete = constants.%char.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method.loc8_11.2: = bound_method %.loc8_11.3, %impl.elem0.loc8_11.2 [concrete = constants.%char.as.Copy.impl.Op.bound] // CHECK:STDOUT: %char.as.Copy.impl.Op.call: init %char = call %bound_method.loc8_11.2(%.loc8_11.3) [concrete = constants.%int_88] // CHECK:STDOUT: %.loc8_11.5: ref %char = temporary %.loc8_11.4, %char.as.Copy.impl.Op.call @@ -947,11 +947,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_14) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%char, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.6: %type_where = converted constants.%char, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.5, constants.%DestroyT.as_type.as.Destroy.impl.Op.9d8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.5, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.1d3 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %.loc8_11.5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.3: = bound_method %.loc8_11.5, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.fb0 = addr_of %.loc8_11.5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.3(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.3(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1127,8 +1127,8 @@ fn F() { // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1173,11 +1173,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1222,8 +1222,8 @@ fn F() { // CHECK:STDOUT: %bound_method.556: = bound_method %int_32767.faa, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1266,11 +1266,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_17) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.5: = bound_method %.loc8_11.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.251 = addr_of %.loc8_11.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.5(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1324,8 +1324,8 @@ fn F() { // CHECK:STDOUT: %bound_method.b72: = bound_method %int_-32768.7e5, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1376,11 +1376,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_18) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.7: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.6, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_11.6: = bound_method %.loc8_11.6, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11: %ptr.251 = addr_of %.loc8_11.6 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_11.6(%addr.loc8_11) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1425,8 +1425,8 @@ fn F() { // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1471,11 +1471,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1520,8 +1520,8 @@ fn F() { // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1566,11 +1566,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1615,8 +1615,8 @@ fn F() { // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1661,11 +1661,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1710,8 +1710,8 @@ fn F() { // CHECK:STDOUT: %bound_method.7c2: = bound_method %int_1.f90, %Int.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1756,11 +1756,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1804,8 +1804,8 @@ fn F() { // CHECK:STDOUT: %bound_method.086: = bound_method %float.032, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f16.a6a, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2d8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.62c: %DestroyT.as_type.as.Destroy.impl.Op.type.2d8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.2bf: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f4f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.2bf = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1850,11 +1850,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f16.a6a, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f16.a6a, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.62c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f4f // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.823 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1898,8 +1898,8 @@ fn F() { // CHECK:STDOUT: %bound_method.21c: = bound_method %float.4cb, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f32.97e, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.482: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8e2: %DestroyT.as_type.as.Destroy.impl.Op.type.482 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d54: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.d78: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d54 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1944,11 +1944,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f32.97e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f32.97e, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.8e2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.d78 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.0bc = addr_of %.loc8_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1992,8 +1992,8 @@ fn F() { // CHECK:STDOUT: %bound_method.c97: = bound_method %float.0fc, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f64.d77, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0bc: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a4c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b46: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a4c = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2038,11 +2038,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_21) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f64.d77, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f64.d77, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.0bc +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b46 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.bcc = addr_of %.loc8_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2086,8 +2086,8 @@ fn F() { // CHECK:STDOUT: %bound_method.435: = bound_method %float.709, %Float.as.Copy.impl.Op.specific_fn [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f128.b8c, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8fc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1c0: %DestroyT.as_type.as.Destroy.impl.Op.type.8fc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8e6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.74d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8e6 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2132,11 +2132,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f128.b8c, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%f128.b8c, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.1c0 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.74d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc8_15.5: = bound_method %.loc8_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.402 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_15.5(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/class.carbon b/toolchain/check/testdata/interop/cpp/function/class.carbon index ac01abad124bb..6c87b1636b40e 100644 --- a/toolchain/check/testdata/interop/cpp/function/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/class.carbon @@ -536,8 +536,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -572,11 +572,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.d9e = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -593,8 +593,8 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -628,11 +628,11 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc24_14.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.d9e = addr_of %.loc24_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -711,8 +711,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1f8: %DestroyT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.368: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b69: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.368 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -763,18 +763,18 @@ fn F() { // CHECK:STDOUT: %x: ref %C = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b69 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.838 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b69 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.838 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -792,8 +792,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.532: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.532 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.528: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.0da: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.528 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -839,11 +839,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_31) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.0da // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.c0c = addr_of %.loc8_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -863,12 +863,12 @@ fn F() { // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.568: %type_where = facet_value %O, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.568) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f1b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.568) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.981: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f1b = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] // CHECK:STDOUT: %facet_value.e34: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.e34) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0e1: %DestroyT.as_type.as.Destroy.impl.Op.type.fac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.e34) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ae5: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -915,18 +915,18 @@ fn F() { // CHECK:STDOUT: %x: ref %O = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%O, () [concrete = constants.%facet_value.568] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%O, %facet_value.loc9 [concrete = constants.%facet_value.568] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.981 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.820 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value.e34] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value.e34] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ae5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.de2 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -948,8 +948,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -990,11 +990,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc9_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc9_12: %ptr.d9e = addr_of %.loc9_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1016,8 +1016,8 @@ fn F() { // CHECK:STDOUT: %C.bar: %C.bar.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1058,11 +1058,11 @@ fn F() { // CHECK:STDOUT: %C.bar.call: init %empty_tuple.type = call imports.%C.bar.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.d9e = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1150,8 +1150,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1178,11 +1178,11 @@ fn F() { // CHECK:STDOUT: %.loc8_11.3: ref %C = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.d9e = addr_of %.loc8_11.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon index 395db65413ade..c575ff6d49910 100644 --- a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon @@ -106,8 +106,8 @@ fn F() { // CHECK:STDOUT: %.5ec: %.001 = cpp_overload_set_value @ [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.91f: %DestroyT.as_type.as.Destroy.impl.Op.type.b6e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4f7: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ce8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.4f7 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -186,11 +186,11 @@ fn F() { // CHECK:STDOUT: %nullptr.ref.loc49: = name_ref nullptr, [concrete = ] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.91f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ce8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc10: = bound_method %n.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc10: %ptr.830 = addr_of %n.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/default_arg.carbon b/toolchain/check/testdata/interop/cpp/function/default_arg.carbon index 989a23d6a57b8..1b76c1da79ae4 100644 --- a/toolchain/check/testdata/interop/cpp/function/default_arg.carbon +++ b/toolchain/check/testdata/interop/cpp/function/default_arg.carbon @@ -195,8 +195,8 @@ fn Call() { // CHECK:STDOUT: %D__carbon_thunk: %D__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.55b: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.272: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.c39: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.272 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -401,18 +401,18 @@ fn Call() { // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr.loc12_23, %.loc12_19.2, %.loc12_22.2) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_5.5: %type_where = converted constants.%X, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12_5: = bound_method %.loc12_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc12_5: = bound_method %.loc12_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc12_5: %ptr.1f9 = addr_of %.loc12_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_5(%addr.loc12_5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12_5(%addr.loc12_5) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_5.5: %type_where = converted constants.%X, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_5: = bound_method %.loc10_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10_5: = bound_method %.loc10_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_5: %ptr.1f9 = addr_of %.loc10_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_5(%addr.loc10_5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_5(%addr.loc10_5) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -483,9 +483,9 @@ fn Call() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.55b: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.55b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.272: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.c39: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.272 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.c39, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -783,18 +783,18 @@ fn Call() { // CHECK:STDOUT: %D__carbon_thunk.call: init %empty_tuple.type = call imports.%D__carbon_thunk.decl(%addr.loc13_20, %.loc13_19.2) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_5.5: %type_where = converted constants.%X, %facet_value.loc13 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.55b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc13_5: = bound_method %.loc13_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc13_5: = bound_method %.loc13_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc13_5: %ptr.1f9 = addr_of %.loc13_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13_5(%addr.loc13_5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13_5(%addr.loc13_5) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_5.5: %type_where = converted constants.%X, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.55b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc11_5: = bound_method %.loc11_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc11_5: = bound_method %.loc11_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11_5: %ptr.1f9 = addr_of %.loc11_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11_5(%addr.loc11_5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11_5(%addr.loc11_5) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -842,8 +842,8 @@ fn Call() { // CHECK:STDOUT: %.7b7: %.c13 = cpp_overload_set_value @ [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d91: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.55b: %DestroyT.as_type.as.Destroy.impl.Op.type.d91 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.272: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.c39: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.272 = struct_value () [concrete] // CHECK:STDOUT: %ptr.1f9: type = ptr_type %X [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -897,18 +897,18 @@ fn Call() { // CHECK:STDOUT: %bound_method.loc76_16: = bound_method %.loc76_7, %D.ref // CHECK:STDOUT: %facet_value.loc76: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc76_5.5: %type_where = converted constants.%X, %facet_value.loc76 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc76: = bound_method %.loc76_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc76: = bound_method %.loc76_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc76_5: = bound_method %.loc76_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc76_5: = bound_method %.loc76_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc76: %ptr.1f9 = addr_of %.loc76_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc76: init %empty_tuple.type = call %bound_method.loc76_5(%addr.loc76) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc76: init %empty_tuple.type = call %bound_method.loc76_5(%addr.loc76) // CHECK:STDOUT: %facet_value.loc56: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc56_5.5: %type_where = converted constants.%X, %facet_value.loc56 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %.loc56_5.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.55b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %.loc56_5.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c39 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc56_5: = bound_method %.loc56_5.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc56_5: = bound_method %.loc56_5.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc56: %ptr.1f9 = addr_of %.loc56_5.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56_5(%addr.loc56) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56_5(%addr.loc56) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon index d4889b6e865d6..bdea65bb66955 100644 --- a/toolchain/check/testdata/interop/cpp/function/full_semir.carbon +++ b/toolchain/check/testdata/interop/cpp/function/full_semir.carbon @@ -114,9 +114,9 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.89b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -192,11 +192,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc7_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc7_13: %ptr.251 = addr_of %.loc7_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/inline.carbon b/toolchain/check/testdata/interop/cpp/function/inline.carbon index e6396c0d4c6b9..ad7e1c6cf65e8 100644 --- a/toolchain/check/testdata/interop/cpp/function/inline.carbon +++ b/toolchain/check/testdata/interop/cpp/function/inline.carbon @@ -211,8 +211,8 @@ fn MyF() { // CHECK:STDOUT: %ThunkOnBoth__carbon_thunk: %ThunkOnBoth__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -363,18 +363,18 @@ fn MyF() { // CHECK:STDOUT: %r4: %i16 = bind_name r4, %.loc16_34.4 // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_33.5: %type_where = converted constants.%i16, %facet_value.loc16 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_33.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_33.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc16_33.5: = bound_method %.loc16_33.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc16_33.5: = bound_method %.loc16_33.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc16_33: %ptr.251 = addr_of %.loc16_33.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_33.5(%addr.loc16_33) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_33.5(%addr.loc16_33) // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_32.5: %type_where = converted constants.%i16, %facet_value.loc14 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_32.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_32.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc14_32.5: = bound_method %.loc14_32.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc14_32.5: = bound_method %.loc14_32.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc14_32: %ptr.251 = addr_of %.loc14_32.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_32.5(%addr.loc14_32) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14_32.5(%addr.loc14_32) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/operators.carbon b/toolchain/check/testdata/interop/cpp/function/operators.carbon index 6bea905ab3c46..2e4519d94f918 100644 --- a/toolchain/check/testdata/interop/cpp/function/operators.carbon +++ b/toolchain/check/testdata/interop/cpp/function/operators.carbon @@ -969,8 +969,8 @@ fn F() { // CHECK:STDOUT: %operator-__carbon_thunk: %operator-__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1056,32 +1056,32 @@ fn F() { // CHECK:STDOUT: %minus: %C = bind_name minus, %.loc15_22.4 // CHECK:STDOUT: %facet_value.loc15: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc15_22.5: %type_where = converted constants.%C, %facet_value.loc15 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_22.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_22.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc15_22.3: %ptr.d9e = addr_of %.loc15_22.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_22.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_22.3) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_3.4: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_3.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_3.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_3.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_3.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc12_3.2: %ptr.d9e = addr_of %.loc12_3.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_3.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_3.2) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.4: %type_where = converted constants.%C, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_3.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_3.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_3.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_3.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc11_3.2: %ptr.d9e = addr_of %.loc11_3.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_3.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_3.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1171,8 +1171,8 @@ fn F() { // CHECK:STDOUT: %operator<=__carbon_thunk: %operator<=__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1805,144 +1805,144 @@ fn F() { // CHECK:STDOUT: %less_than_or_equal: bool = bind_name less_than_or_equal, %.loc43_37.4 // CHECK:STDOUT: %facet_value.loc35: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc35_6.4: %type_where = converted constants.%C, %facet_value.loc35 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc35: = bound_method %.loc35_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc35: = bound_method %.loc35_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35_6.3: %ptr.d9e = addr_of %.loc35_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35(%addr.loc35_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35(%addr.loc35_6.3) // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_6.4: %type_where = converted constants.%C, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc34: = bound_method %.loc34_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc34_6.3: %ptr.d9e = addr_of %.loc34_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34(%addr.loc34_6.3) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc33_6.4: %type_where = converted constants.%C, %facet_value.loc33 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %.loc33_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc33: = bound_method %.loc33_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc33_6.3: %ptr.d9e = addr_of %.loc33_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33(%addr.loc33_6.3) // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_6.4: %type_where = converted constants.%C, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %.loc30_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc30: = bound_method %.loc30_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc30_6.3: %ptr.d9e = addr_of %.loc30_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30(%addr.loc30_6.3) // CHECK:STDOUT: %facet_value.loc29: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc29_6.4: %type_where = converted constants.%C, %facet_value.loc29 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %.loc29_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc29: = bound_method %.loc29_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc29: = bound_method %.loc29_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %bound_method.loc29: = bound_method %.loc29_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc29_6.3: %ptr.d9e = addr_of %.loc29_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc29: init %empty_tuple.type = call %bound_method.loc29(%addr.loc29_6.3) // CHECK:STDOUT: %facet_value.loc28: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc28_6.4: %type_where = converted constants.%C, %facet_value.loc28 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc28: = bound_method %.loc28_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc28: = bound_method %.loc28_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc28: = bound_method %.loc28_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6 +// CHECK:STDOUT: %bound_method.loc28: = bound_method %.loc28_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6 // CHECK:STDOUT: %addr.loc28_6.3: %ptr.d9e = addr_of %.loc28_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28(%addr.loc28_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc28: init %empty_tuple.type = call %bound_method.loc28(%addr.loc28_6.3) // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_6.4: %type_where = converted constants.%C, %facet_value.loc27 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %.loc27_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7 +// CHECK:STDOUT: %bound_method.loc27: = bound_method %.loc27_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.7 // CHECK:STDOUT: %addr.loc27_6.3: %ptr.d9e = addr_of %.loc27_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27_6.3) // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_6.4: %type_where = converted constants.%C, %facet_value.loc26 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %.loc26_6.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8 +// CHECK:STDOUT: %bound_method.loc26: = bound_method %.loc26_6.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8 // CHECK:STDOUT: %addr.loc26_6.3: %ptr.d9e = addr_of %.loc26_6.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26_6.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26_6.3) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_31.5: %type_where = converted constants.%C, %facet_value.loc23 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %.loc23_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc23_31: = bound_method %.loc23_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9 +// CHECK:STDOUT: %bound_method.loc23_31: = bound_method %.loc23_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9 // CHECK:STDOUT: %addr.loc23_31.3: %ptr.d9e = addr_of %.loc23_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_31(%addr.loc23_31.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_31(%addr.loc23_31.3) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_30.5: %type_where = converted constants.%C, %facet_value.loc22 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_30.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %.loc22_30.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc22_30: = bound_method %.loc22_30.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.10 +// CHECK:STDOUT: %bound_method.loc22_30: = bound_method %.loc22_30.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.10 // CHECK:STDOUT: %addr.loc22_30.3: %ptr.d9e = addr_of %.loc22_30.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_30(%addr.loc22_30.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_30(%addr.loc22_30.3) // CHECK:STDOUT: %facet_value.loc21: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc21_31.5: %type_where = converted constants.%C, %facet_value.loc21 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc21: = bound_method %.loc21_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.11 +// CHECK:STDOUT: %bound_method.loc21: = bound_method %.loc21_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.11 // CHECK:STDOUT: %addr.loc21_31.4: %ptr.d9e = addr_of %.loc21_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21_31.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc21: init %empty_tuple.type = call %bound_method.loc21(%addr.loc21_31.4) // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_30.5: %type_where = converted constants.%C, %facet_value.loc20 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %.loc20_30.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %.loc20_30.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc20: = bound_method %.loc20_30.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.12 +// CHECK:STDOUT: %bound_method.loc20: = bound_method %.loc20_30.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.12 // CHECK:STDOUT: %addr.loc20_30.4: %ptr.d9e = addr_of %.loc20_30.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20_30.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20_30.4) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_31.5: %type_where = converted constants.%C, %facet_value.loc19 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.13 +// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.13 // CHECK:STDOUT: %addr.loc19_31.4: %ptr.d9e = addr_of %.loc19_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19_31.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19_31.4) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_26.5: %type_where = converted constants.%C, %facet_value.loc16 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %.loc16_26.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.14 +// CHECK:STDOUT: %bound_method.loc16: = bound_method %.loc16_26.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.14 // CHECK:STDOUT: %addr.loc16_26.4: %ptr.d9e = addr_of %.loc16_26.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16_26.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16_26.4) // CHECK:STDOUT: %facet_value.loc15: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc15_28.5: %type_where = converted constants.%C, %facet_value.loc15 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %.loc15_28.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.15 +// CHECK:STDOUT: %bound_method.loc15: = bound_method %.loc15_28.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.15 // CHECK:STDOUT: %addr.loc15_28.4: %ptr.d9e = addr_of %.loc15_28.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_28.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15_28.4) // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_34.5: %type_where = converted constants.%C, %facet_value.loc14 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_34.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %.loc14_34.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_34.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.16 +// CHECK:STDOUT: %bound_method.loc14: = bound_method %.loc14_34.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.16 // CHECK:STDOUT: %addr.loc14_34.4: %ptr.d9e = addr_of %.loc14_34.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14_34.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14_34.4) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc13_31.5: %type_where = converted constants.%C, %facet_value.loc13 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %.loc13_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.17 +// CHECK:STDOUT: %bound_method.loc13: = bound_method %.loc13_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.17 // CHECK:STDOUT: %addr.loc13_31.4: %ptr.d9e = addr_of %.loc13_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13_31.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13_31.4) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_28.5: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_28.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_28.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_28.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.18 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_28.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.18 // CHECK:STDOUT: %addr.loc12_28.4: %ptr.d9e = addr_of %.loc12_28.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_28.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_28.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.19 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.19 // CHECK:STDOUT: %addr.loc9_3: %ptr.d9e = addr_of %c2.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.20 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.20 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1961,8 +1961,8 @@ fn F() { // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2082,39 +2082,39 @@ fn F() { // CHECK:STDOUT: %c5: %C = bind_name c5, %.loc12_22.4 // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_22.5: %type_where = converted constants.%C, %facet_value.loc12 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_22.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_22.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc12_22.4: %ptr.d9e = addr_of %.loc12_22.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_22.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12_22.4) // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_22.5: %type_where = converted constants.%C, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_22.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_22.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc11_22.4: %ptr.d9e = addr_of %.loc11_22.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_22.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_22.4) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_22.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc10_22.4: %ptr.d9e = addr_of %.loc10_22.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_27.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_27.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_27.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_27.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_27.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc9_27.2: %ptr.d9e = addr_of %.loc9_27.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_27.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_27.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_27.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_27.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_27.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc8_27.2: %ptr.d9e = addr_of %.loc8_27.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_27.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2133,8 +2133,8 @@ fn F() { // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1f8: %DestroyT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.368: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b69: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.368 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2223,25 +2223,25 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_24.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_24.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b69 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_24.4: %ptr.838 = addr_of %.loc10_24.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_31.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b69 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_31.2: %ptr.838 = addr_of %.loc9_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b69 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.838 = addr_of %.loc8_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2269,11 +2269,11 @@ fn F() { // CHECK:STDOUT: %operator-__carbon_thunk: %operator-__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.d7a: %type_where = facet_value %C2, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cd3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d7a) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5ee: %DestroyT.as_type.as.Destroy.impl.Op.type.cd3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cf4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d7a) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.553: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cf4 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.e5d: %type_where = facet_value %C1, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.26c: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.e5d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.176: %DestroyT.as_type.as.Destroy.impl.Op.type.26c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e1f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.e5d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b74: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.e1f = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2400,32 +2400,32 @@ fn F() { // CHECK:STDOUT: %c4: %C2 = bind_name c4, %.loc11_26.4 // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%C2, () [concrete = constants.%facet_value.d7a] // CHECK:STDOUT: %.loc11_26.5: %type_where = converted constants.%C2, %facet_value.loc11 [concrete = constants.%facet_value.d7a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.5ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %.loc11_26.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.553 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc11: = bound_method %.loc11_26.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc11_26.4: %ptr.51f = addr_of %.loc11_26.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_26.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11_26.4) // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C2, () [concrete = constants.%facet_value.d7a] // CHECK:STDOUT: %.loc10_26.5: %type_where = converted constants.%C2, %facet_value.loc10 [concrete = constants.%facet_value.d7a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.5ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.553 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc10_26.4: %ptr.51f = addr_of %.loc10_26.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C2, () [concrete = constants.%facet_value.d7a] // CHECK:STDOUT: %.loc9_36.5: %type_where = converted constants.%C2, %facet_value.loc9 [concrete = constants.%facet_value.d7a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_36.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.5ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_36.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.553 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_36.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_36.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc9_36.2: %ptr.51f = addr_of %.loc9_36.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_36.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_36.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C1, () [concrete = constants.%facet_value.e5d] // CHECK:STDOUT: %.loc8_36.5: %type_where = converted constants.%C1, %facet_value.loc8 [concrete = constants.%facet_value.e5d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_36.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.176 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_36.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b74 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_36.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_36.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc8_36.2: %ptr.087 = addr_of %.loc8_36.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_36.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_36.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2442,8 +2442,8 @@ fn F() { // CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.523: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1f8: %DestroyT.as_type.as.Destroy.impl.Op.type.523 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.368: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b69: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.368 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2517,18 +2517,18 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, [concrete = ] // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_31.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b69 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_31.2: %ptr.838 = addr_of %.loc9_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.1f8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b69 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.838 = addr_of %.loc8_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2548,8 +2548,8 @@ fn F() { // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fac: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0e1: %DestroyT.as_type.as.Destroy.impl.Op.type.fac = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ae5: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2635,25 +2635,25 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_24.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_24.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_24.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ae5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_24.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_24.4: %ptr.de2 = addr_of %.loc10_24.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_24.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_31.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ae5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_31.2: %ptr.de2 = addr_of %.loc9_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_31.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_31.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.0e1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_31.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ae5 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_31.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_31.2: %ptr.de2 = addr_of %.loc8_31.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_31.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2673,8 +2673,8 @@ fn F() { // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fda: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.aaa: %DestroyT.as_type.as.Destroy.impl.Op.type.fda = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c9b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.971: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.c9b = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2769,25 +2769,25 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_26.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_26.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.aaa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_26.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.971 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_26.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_26.4: %ptr.4b2 = addr_of %.loc10_26.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_26.4) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_35.5: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.aaa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %.loc9_35.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.971 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_35.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %.loc9_35.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_35.2: %ptr.4b2 = addr_of %.loc9_35.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_35.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_35.2) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_35.5: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_35.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.aaa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_35.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.971 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_35.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_35.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_35.2: %ptr.4b2 = addr_of %.loc8_35.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_35.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_35.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2808,8 +2808,8 @@ fn F() { // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2896,25 +2896,25 @@ fn F() { // CHECK:STDOUT: %c3: ref %C = bind_name c3, %c3.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %c3.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %c3.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.d9e = addr_of %c3.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_3) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%C, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %c2.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %c2.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_3: %ptr.d9e = addr_of %c2.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%C, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %c1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %c1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_3: %ptr.d9e = addr_of %c1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2960,8 +2960,8 @@ fn F() { // CHECK:STDOUT: %operator+__carbon_thunk: %operator+__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.6b9: %DestroyT.as_type.as.Destroy.impl.Op.type.fc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.841: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b92 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -3002,11 +3002,11 @@ fn F() { // CHECK:STDOUT: %c3: %C = bind_name c3, %.loc10_22.4 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_22.5: %type_where = converted constants.%C, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.6b9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %.loc10_22.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.841 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %.loc10_22.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_22.4: %ptr.d9e = addr_of %.loc10_22.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10_22.4) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/overloads.carbon b/toolchain/check/testdata/interop/cpp/function/overloads.carbon index 88e865cf1844a..6e13c81018069 100644 --- a/toolchain/check/testdata/interop/cpp/function/overloads.carbon +++ b/toolchain/check/testdata/interop/cpp/function/overloads.carbon @@ -398,9 +398,9 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.89b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -476,11 +476,11 @@ fn F() { // CHECK:STDOUT: %bar__carbon_thunk.call: init %empty_tuple.type = call imports.%bar__carbon_thunk.decl(%addr.loc7_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_13.5: = bound_method %.loc7_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc7_13: %ptr.251 = addr_of %.loc7_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_13.5(%addr.loc7_13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -649,9 +649,9 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i16, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.054: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.ce5: %DestroyT.as_type.as.Destroy.impl.Op.type.054 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.89b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.716 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.89b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -751,11 +751,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_19) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i16, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_13.5: %type_where = converted constants.%i16, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.ce5, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_13.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.89b, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_13.5: = bound_method %.loc8_13.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_13: %ptr.251 = addr_of %.loc8_13.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc8_13.5(%addr.loc8_13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1897,9 +1897,9 @@ fn F() { // CHECK:STDOUT: %.Self: %type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %ValueT: %I.type = bind_symbolic_name ValueT, 0 [symbolic] // CHECK:STDOUT: %pattern_type.09a: type = pattern_type %I.type [concrete] -// CHECK:STDOUT: %ValueT.as_type: type = facet_access_type %ValueT [symbolic] -// CHECK:STDOUT: %value: %ValueT.as_type = bind_symbolic_name value, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.d22: type = pattern_type %ValueT.as_type [symbolic] +// CHECK:STDOUT: %ValueT.binding.as_type: type = symbolic_binding_type ValueT, 0, %ValueT [symbolic] +// CHECK:STDOUT: %value: %ValueT.binding.as_type = bind_symbolic_name value, 1 [symbolic] +// CHECK:STDOUT: %pattern_type.3f7: type = pattern_type %ValueT.binding.as_type [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] @@ -1935,20 +1935,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.09a = symbolic_binding_pattern ValueT, 0 [concrete] -// CHECK:STDOUT: %value.patt: @EchoValue.%pattern_type (%pattern_type.d22) = symbolic_binding_pattern value, 1 [concrete] +// CHECK:STDOUT: %value.patt: @EchoValue.%pattern_type (%pattern_type.3f7) = 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 = bind_symbolic_name .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_14.2: %I.type = bind_symbolic_name ValueT, 0 [symbolic = %ValueT.loc10_14.1 (constants.%ValueT)] -// CHECK:STDOUT: %.loc10_34.1: type = splice_block %.loc10_34.2 [symbolic = %ValueT.as_type.loc10_34.1 (constants.%ValueT.as_type)] { +// CHECK:STDOUT: %.loc10_34.1: type = splice_block %.loc10_34.2 [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] { // CHECK:STDOUT: %.Self.1: %type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %ValueT.ref: %I.type = name_ref ValueT, %ValueT.loc10_14.2 [symbolic = %ValueT.loc10_14.1 (constants.%ValueT)] -// CHECK:STDOUT: %ValueT.as_type.loc10_34.2: type = facet_access_type %ValueT.ref [symbolic = %ValueT.as_type.loc10_34.1 (constants.%ValueT.as_type)] -// CHECK:STDOUT: %.loc10_34.2: type = converted %ValueT.ref, %ValueT.as_type.loc10_34.2 [symbolic = %ValueT.as_type.loc10_34.1 (constants.%ValueT.as_type)] +// CHECK:STDOUT: %ValueT.as_type: type = facet_access_type %ValueT.ref [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] +// CHECK:STDOUT: %.loc10_34.2: type = converted %ValueT.ref, %ValueT.as_type [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %value.loc10_26.2: @EchoValue.%ValueT.as_type.loc10_34.1 (%ValueT.as_type) = bind_symbolic_name value, 1 [symbolic = %value.loc10_26.1 (constants.%value)] +// CHECK:STDOUT: %value.loc10_26.2: @EchoValue.%ValueT.binding.as_type (%ValueT.binding.as_type) = bind_symbolic_name value, 1 [symbolic = %value.loc10_26.1 (constants.%value)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -1961,11 +1961,11 @@ fn F() { // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EchoValue(%ValueT.loc10_14.2: %I.type, %value.loc10_26.2: @EchoValue.%ValueT.as_type.loc10_34.1 (%ValueT.as_type)) { +// CHECK:STDOUT: generic fn @EchoValue(%ValueT.loc10_14.2: %I.type, %value.loc10_26.2: @EchoValue.%ValueT.binding.as_type (%ValueT.binding.as_type)) { // CHECK:STDOUT: %ValueT.loc10_14.1: %I.type = bind_symbolic_name ValueT, 0 [symbolic = %ValueT.loc10_14.1 (constants.%ValueT)] -// CHECK:STDOUT: %ValueT.as_type.loc10_34.1: type = facet_access_type %ValueT.loc10_14.1 [symbolic = %ValueT.as_type.loc10_34.1 (constants.%ValueT.as_type)] -// CHECK:STDOUT: %value.loc10_26.1: @EchoValue.%ValueT.as_type.loc10_34.1 (%ValueT.as_type) = bind_symbolic_name value, 1 [symbolic = %value.loc10_26.1 (constants.%value)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ValueT.as_type.loc10_34.1 [symbolic = %pattern_type (constants.%pattern_type.d22)] +// CHECK:STDOUT: %ValueT.binding.as_type: type = symbolic_binding_type ValueT, 0, %ValueT.loc10_14.1 [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] +// CHECK:STDOUT: %value.loc10_26.1: @EchoValue.%ValueT.binding.as_type (%ValueT.binding.as_type) = bind_symbolic_name value, 1 [symbolic = %value.loc10_26.1 (constants.%value)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ValueT.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.3f7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -1985,8 +1985,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @EchoValue(constants.%ValueT, constants.%value) { // CHECK:STDOUT: %ValueT.loc10_14.1 => constants.%ValueT -// CHECK:STDOUT: %ValueT.as_type.loc10_34.1 => constants.%ValueT.as_type +// CHECK:STDOUT: %ValueT.binding.as_type => constants.%ValueT.binding.as_type // CHECK:STDOUT: %value.loc10_26.1 => constants.%value -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d22 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3f7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/pointer.carbon index d83f479576021..d147cc6881e65 100644 --- a/toolchain/check/testdata/interop/cpp/function/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/pointer.carbon @@ -262,8 +262,8 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -304,11 +304,11 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr.loc9) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -340,11 +340,11 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.448: %type_where = facet_value %ptr.5c7, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ce2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.448) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.153: %DestroyT.as_type.as.Destroy.impl.Op.type.ce2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8de: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.448) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.4bc: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8de = struct_value () [concrete] // CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -406,18 +406,18 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr.loc10) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%ptr.5c7, () [concrete = constants.%facet_value.448] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%ptr.5c7, %facet_value.loc9 [concrete = constants.%facet_value.448] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.153 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %p.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.4bc // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %p.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_3: %ptr.dfe = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -437,8 +437,8 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %const, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.31d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.818: %DestroyT.as_type.as.Destroy.impl.Op.type.31d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.56e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.089: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.56e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -480,11 +480,11 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%addr.loc11) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%const, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%const, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.818 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.089 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc10: %ptr.ff5 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -635,8 +635,8 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -671,11 +671,11 @@ fn F() { // CHECK:STDOUT: %addr.loc13: %ptr.5c7 = addr_of %s.ref // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -695,8 +695,8 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -748,11 +748,11 @@ fn F() { // CHECK:STDOUT: %p: %ptr.5c7 = bind_name p, %.loc9_29.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -773,8 +773,8 @@ fn F() { // CHECK:STDOUT: %Indirect: %Indirect.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -827,18 +827,18 @@ fn F() { // CHECK:STDOUT: %Indirect.call: init = call imports.%Indirect.decl(%.loc19_19.2) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc19_17.5: %type_where = converted constants.%S, %facet_value.loc19 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_17.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %.loc19_17.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_17.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc19: = bound_method %.loc19_17.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc19: %ptr.5c7 = addr_of %.loc19_17.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon b/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon index b159badfc66a7..7366f67e973ce 100644 --- a/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/qualified_param.carbon @@ -71,8 +71,8 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -137,11 +137,11 @@ fn F() { // CHECK:STDOUT: %TakesConstS__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesConstS__carbon_thunk.decl(%.loc11_20.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc10: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc10: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/reference.carbon b/toolchain/check/testdata/interop/cpp/function/reference.carbon index c6eee8bb2db9d..ee6302125308b 100644 --- a/toolchain/check/testdata/interop/cpp/function/reference.carbon +++ b/toolchain/check/testdata/interop/cpp/function/reference.carbon @@ -306,8 +306,8 @@ fn F() { // CHECK:STDOUT: %TakesLValue__carbon_thunk: %TakesLValue__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -348,11 +348,11 @@ fn F() { // CHECK:STDOUT: %TakesLValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesLValue__carbon_thunk.decl(%addr.loc9) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -369,12 +369,12 @@ fn F() { // CHECK:STDOUT: %const: type = const_type %S [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %facet_value.19d: %type_where = facet_value %T, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8c8: %DestroyT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.431: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.19d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.2f0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.431 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b04: type = ptr_type %T [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -448,25 +448,25 @@ fn F() { // CHECK:STDOUT: %.loc40_21.2: ref %const = converted %u.ref, %.loc40_21.1 // CHECK:STDOUT: %facet_value.loc31: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc31_3: %type_where = converted constants.%S, %facet_value.loc31 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %u.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc31: = bound_method %u.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc31: = bound_method %u.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc31: = bound_method %u.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc31: %ptr.5c7 = addr_of %u.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%T, () [concrete = constants.%facet_value.19d] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%T, %facet_value.loc20 [concrete = constants.%facet_value.19d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8c8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.2f0 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc20: %ptr.b04 = addr_of %t.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -484,8 +484,8 @@ fn F() { // CHECK:STDOUT: %TakesRValue__carbon_thunk: %TakesRValue__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -520,11 +520,11 @@ fn F() { // CHECK:STDOUT: %TakesRValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesRValue__carbon_thunk.decl(%addr.loc8_30) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_20.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_20.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_20.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_20.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_20.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_20: %ptr.5c7 = addr_of %.loc8_20.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_20) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_20) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -543,8 +543,8 @@ fn F() { // CHECK:STDOUT: %TakesRValue__carbon_thunk: %TakesRValue__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -586,11 +586,11 @@ fn F() { // CHECK:STDOUT: %TakesRValue__carbon_thunk.call: init %empty_tuple.type = call imports.%TakesRValue__carbon_thunk.decl(%addr.loc13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_19.7: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_19.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc12_19.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc12_19.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc12_19.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc12: %ptr.5c7 = addr_of %.loc12_19.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -609,12 +609,12 @@ fn F() { // CHECK:STDOUT: %const: type = const_type %S [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %facet_value.19d: %type_where = facet_value %T, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8c8: %DestroyT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.431: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.19d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.2f0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.431 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b04: type = ptr_type %T [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -674,25 +674,25 @@ fn F() { // CHECK:STDOUT: %.loc38_33.2: ref %const = converted %.loc38_23, %.loc38_33.1 // CHECK:STDOUT: %facet_value.loc38: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc38_21.5: %type_where = converted constants.%S, %facet_value.loc38 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_21.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc38: = bound_method %.loc38_21.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc38: = bound_method %.loc38_21.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc38: = bound_method %.loc38_21.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc38: %ptr.5c7 = addr_of %.loc38_21.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38(%addr.loc38) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc38: init %empty_tuple.type = call %bound_method.loc38(%addr.loc38) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%T, () [concrete = constants.%facet_value.19d] // CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%T, %facet_value.loc19 [concrete = constants.%facet_value.19d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8c8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %t.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.2f0 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc19: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc19: = bound_method %t.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc19: %ptr.b04 = addr_of %t.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19(%addr.loc19) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -713,8 +713,8 @@ fn F() { // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -767,11 +767,11 @@ fn F() { // CHECK:STDOUT: %TakesConstLValue__carbon_thunk.call.loc11: init %empty_tuple.type = call imports.%TakesConstLValue__carbon_thunk.decl(%.loc11_24.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -794,12 +794,12 @@ fn F() { // CHECK:STDOUT: %pattern_type.e6b: type = pattern_type %T [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.19d: %type_where = facet_value %T, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.896: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.19d) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8c8: %DestroyT.as_type.as.Destroy.impl.Op.type.896 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.431: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.19d) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.2f0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.431 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b04: type = ptr_type %T [concrete] // CHECK:STDOUT: %facet_value.7bd: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7bd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -858,18 +858,18 @@ fn F() { // CHECK:STDOUT: %t.ref: ref %T = name_ref t, %t // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%T, () [concrete = constants.%facet_value.19d] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%T, %facet_value.loc20 [concrete = constants.%facet_value.19d] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8c8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %t.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.2f0 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc20: = bound_method %t.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20: %ptr.b04 = addr_of %t.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20(%addr.loc20) // CHECK:STDOUT: %facet_value.loc12: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.7bd] // CHECK:STDOUT: %.loc12_19.7: %type_where = converted constants.%S, %facet_value.loc12 [concrete = constants.%facet_value.7bd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_19.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12: = bound_method %.loc12_19.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_19.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc12: = bound_method %.loc12_19.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc12: %ptr.5c7 = addr_of %.loc12_19.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12: init %empty_tuple.type = call %bound_method.loc12(%addr.loc12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -929,8 +929,8 @@ fn F() { // CHECK:STDOUT: %ReturnsRValue: %ReturnsRValue.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -967,11 +967,11 @@ fn F() { // CHECK:STDOUT: %s: ref %S = bind_name s, %s.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.5c7 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -988,8 +988,8 @@ fn F() { // CHECK:STDOUT: %ReturnConstLValue: %ReturnConstLValue.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %const, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.31d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.818: %DestroyT.as_type.as.Destroy.impl.Op.type.31d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.56e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.089: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.56e = struct_value () [concrete] // CHECK:STDOUT: %ptr.ff5: type = ptr_type %const [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1027,11 +1027,11 @@ fn F() { // CHECK:STDOUT: %s: ref %const = bind_name s, %s.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%const, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3: %type_where = converted constants.%const, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.818 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.089 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ff5 = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/struct.carbon b/toolchain/check/testdata/interop/cpp/function/struct.carbon index 5033fc4298d32..e6345b4e7e0a5 100644 --- a/toolchain/check/testdata/interop/cpp/function/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/struct.carbon @@ -535,8 +535,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -571,11 +571,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.5c7 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -592,8 +592,8 @@ fn F() { // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -627,11 +627,11 @@ fn F() { // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc24_14.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc24_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc24_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc24_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.5c7 = addr_of %.loc24_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -710,8 +710,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.1c1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.dc3: %DestroyT.as_type.as.Destroy.impl.Op.type.1c1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d50: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.906: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d50 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -762,18 +762,18 @@ fn F() { // CHECK:STDOUT: %x: ref %S = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%S, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.dc3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.906 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.edf = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.dc3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.906 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.edf = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -791,8 +791,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.fb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.006: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.9b6: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.006 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -838,11 +838,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_31) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9b6 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.887 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -862,12 +862,12 @@ fn F() { // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.568: %type_where = facet_value %O, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.568) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f1b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.568) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.981: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f1b = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] // CHECK:STDOUT: %facet_value.769: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e87: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.769) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.487: %DestroyT.as_type.as.Destroy.impl.Op.type.e87 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.fad: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.769) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.72d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.fad = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -914,18 +914,18 @@ fn F() { // CHECK:STDOUT: %x: ref %O = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%O, () [concrete = constants.%facet_value.568] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%O, %facet_value.loc9 [concrete = constants.%facet_value.568] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.981 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.820 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value.769] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value.loc8 [concrete = constants.%facet_value.769] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.487 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.72d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.149 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -947,8 +947,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -989,11 +989,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc9_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc9_12: %ptr.5c7 = addr_of %.loc9_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1015,8 +1015,8 @@ fn F() { // CHECK:STDOUT: %S.bar: %S.bar.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1057,11 +1057,11 @@ fn F() { // CHECK:STDOUT: %S.bar.call: init %empty_tuple.type = call imports.%S.bar.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.5c7 = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1149,8 +1149,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %S, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.df1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cc2: %DestroyT.as_type.as.Destroy.impl.Op.type.df1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.016: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.34a = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1177,11 +1177,11 @@ fn F() { // CHECK:STDOUT: %.loc8_11.3: ref %S = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%S, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%S, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.cc2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.016 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.5c7 = addr_of %.loc8_11.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/union.carbon b/toolchain/check/testdata/interop/cpp/function/union.carbon index 92d1fc171c735..be060bf29a4cd 100644 --- a/toolchain/check/testdata/interop/cpp/function/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/union.carbon @@ -526,8 +526,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.535: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -562,11 +562,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.535 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.86f = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -645,8 +645,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.f0f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.2bd: %DestroyT.as_type.as.Destroy.impl.Op.type.f0f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cd7: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.045: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.cd7 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -697,18 +697,18 @@ fn F() { // CHECK:STDOUT: %x: ref %U = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%U, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.2bd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.045 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.87e = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.2bd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.045 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.87e = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -726,8 +726,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.da5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.941: %DestroyT.as_type.as.Destroy.impl.Op.type.da5 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b3c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7e8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b3c = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -773,11 +773,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc8_31) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.941 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_15.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7e8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_15.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_15: %ptr.8c1 = addr_of %.loc8_15.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_15) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -797,12 +797,12 @@ fn F() { // CHECK:STDOUT: %pattern_type.cff: type = pattern_type %O [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.568: %type_where = facet_value %O, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a17: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.568) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c17: %DestroyT.as_type.as.Destroy.impl.Op.type.a17 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f1b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.568) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.981: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f1b = struct_value () [concrete] // CHECK:STDOUT: %ptr.820: type = ptr_type %O [concrete] // CHECK:STDOUT: %facet_value.f72: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b0e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.f72) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bcd: %DestroyT.as_type.as.Destroy.impl.Op.type.b0e = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.76e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.f72) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.287: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.76e = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -849,18 +849,18 @@ fn F() { // CHECK:STDOUT: %x: ref %O = bind_name x, %x.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%O, () [concrete = constants.%facet_value.568] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%O, %facet_value.loc9 [concrete = constants.%facet_value.568] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c17 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.981 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc9: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.820 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9(%addr.loc9) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value.f72] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value.loc8 [concrete = constants.%facet_value.f72] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.bcd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.287 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_12: %ptr.a6c = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -882,8 +882,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.535: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -924,11 +924,11 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk.call: init %empty_tuple.type = call imports.%foo__carbon_thunk.decl(%addr.loc9_22) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_12.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc9_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.535 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc9_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc9_12: %ptr.86f = addr_of %.loc9_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc9_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -950,8 +950,8 @@ fn F() { // CHECK:STDOUT: %U.bar: %U.bar.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.535: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -992,11 +992,11 @@ fn F() { // CHECK:STDOUT: %U.bar.call: init %empty_tuple.type = call imports.%U.bar.decl() // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_12.5: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_12.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.535 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_12.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_12: %ptr.86f = addr_of %.loc8_12.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_12) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1084,8 +1084,8 @@ fn F() { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %U, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.981: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.4aa: %DestroyT.as_type.as.Destroy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.535: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.eed = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1112,11 +1112,11 @@ fn F() { // CHECK:STDOUT: %.loc8_11.3: ref %U = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%U, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%U, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.4aa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.535 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.86f = addr_of %.loc8_11.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/namespace.carbon b/toolchain/check/testdata/interop/cpp/namespace.carbon index d632bcacb3552..e35e2520158f1 100644 --- a/toolchain/check/testdata/interop/cpp/namespace.carbon +++ b/toolchain/check/testdata/interop/cpp/namespace.carbon @@ -374,8 +374,8 @@ fn Use(y: Cpp.Y) -> i32 { // CHECK:STDOUT: %foo__carbon_thunk: %foo__carbon_thunk.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.24f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.675: %DestroyT.as_type.as.Destroy.impl.Op.type.24f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8b9: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.e4b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8b9 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -402,11 +402,11 @@ fn Use(y: Cpp.Y) -> i32 { // CHECK:STDOUT: %.loc8_11.3: ref %X = temporary %.loc8_11.1, %.loc8_11.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%X, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.675 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc8_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.e4b // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.loc8_11.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc8_11.2: %ptr.13d = addr_of %.loc8_11.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr.loc8_11.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/typedef.carbon b/toolchain/check/testdata/interop/cpp/typedef.carbon index 6dfbe613b912c..290193eae63b1 100644 --- a/toolchain/check/testdata/interop/cpp/typedef.carbon +++ b/toolchain/check/testdata/interop/cpp/typedef.carbon @@ -86,12 +86,12 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.9fb, @ptr.as.Copy.impl.Op(%i32) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -149,18 +149,18 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %p: ref %ptr.235 = bind_name p, %p.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%ptr.235, %facet_value.loc10 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %p.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %p.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.5d5 = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%i32, %facet_value.loc8 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %n.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc8_3.3: = bound_method %n.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.3(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.3(%addr.loc8) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -184,8 +184,8 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %ptr.as.Copy.impl.Op.specific_fn: = specific_function %ptr.as.Copy.impl.Op.106, @ptr.as.Copy.impl.Op(%C) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.d9e, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e61: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.80c: %DestroyT.as_type.as.Destroy.impl.Op.type.e61 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8d8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.fe8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.8d8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.01d: type = ptr_type %ptr.d9e [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -242,18 +242,18 @@ fn H(var c: Cpp.C, var d: Cpp.D) { // CHECK:STDOUT: %pc: ref %ptr.d9e = bind_name pc, %pc.var // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%ptr.d9e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%ptr.d9e, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %pc.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.80c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %pc.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fe8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %pc.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc10_3: = bound_method %pc.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10_3: %ptr.01d = addr_of %pc.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10_3(%addr.loc10_3) // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%ptr.d9e, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%ptr.d9e, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %pd.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.80c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %pd.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.fe8 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %pd.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %pd.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_3: %ptr.01d = addr_of %pd.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9_3) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 85bedb9b2db24..fd79b7035d572 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -332,23 +332,23 @@ impl i32 as Empty { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.c7f: %type_where = facet_value %tuple.type.2d5, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.b05: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.1d6: %DestroyT.as_type.as.Destroy.impl.Op.type.b05 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cca: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.1d6, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.c7f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.70c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.c7f) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7c8: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.70c = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.176: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.7c8, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.c7f) [concrete] // CHECK:STDOUT: %facet_value.dcc: %type_where = facet_value %tuple.type.bcd, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.042: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.886: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] // CHECK:STDOUT: %facet_value.132: %type_where = facet_value %tuple.type.9fb, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.132) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7ed: %DestroyT.as_type.as.Destroy.impl.Op.type.2ee = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.79c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.132) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a49: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.79c = struct_value () [concrete] // CHECK:STDOUT: %ptr.652: type = ptr_type %tuple.type.9fb [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.af4: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7ed, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.132) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.7cb: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a49, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.132) [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -558,32 +558,32 @@ impl i32 as Empty { // CHECK:STDOUT: %d1: ref %tuple.type.2d5 = bind_name d1, %d1.var // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%tuple.type.2d5, () [concrete = constants.%facet_value.c7f] // CHECK:STDOUT: %.loc16_5.2: %type_where = converted constants.%tuple.type.2d5, %facet_value.loc16 [concrete = constants.%facet_value.c7f] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %d1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.1d6 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.1d6, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.c7f) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.cca] -// CHECK:STDOUT: %bound_method.loc16: = bound_method %d1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %d1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c8, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.c7f) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.176] +// CHECK:STDOUT: %bound_method.loc16: = bound_method %d1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc16: %ptr.7fe = addr_of %d1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16(%addr.loc16) // CHECK:STDOUT: %facet_value.loc15: %type_where = facet_value constants.%tuple.type.bcd, () [concrete = constants.%facet_value.dcc] // CHECK:STDOUT: %.loc15_5.2: %type_where = converted constants.%tuple.type.bcd, %facet_value.loc15 [concrete = constants.%facet_value.dcc] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %c1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15] -// CHECK:STDOUT: %bound_method.loc15: = bound_method %c1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc15: = bound_method %c1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.886] +// CHECK:STDOUT: %bound_method.loc15: = bound_method %c1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc15: %ptr.709 = addr_of %c1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc15: init %empty_tuple.type = call %bound_method.loc15(%addr.loc15) // CHECK:STDOUT: %facet_value.loc14: %type_where = facet_value constants.%tuple.type.9fb, () [concrete = constants.%facet_value.132] // CHECK:STDOUT: %.loc14_5.2: %type_where = converted constants.%tuple.type.9fb, %facet_value.loc14 [concrete = constants.%facet_value.132] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7ed -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7ed, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.132) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.af4] -// CHECK:STDOUT: %bound_method.loc14: = bound_method %b1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14: = bound_method %b1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a49 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a49, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.132) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.7cb] +// CHECK:STDOUT: %bound_method.loc14: = bound_method %b1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc14: %ptr.652 = addr_of %b1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14: init %empty_tuple.type = call %bound_method.loc14(%addr.loc14) // CHECK:STDOUT: %facet_value.loc13: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc13_5.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc13 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %a1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc13: = bound_method %a1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13: = bound_method %a1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc13: = bound_method %a1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc13: %ptr.843 = addr_of %a1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13: init %empty_tuple.type = call %bound_method.loc13(%addr.loc13) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/let/generic.carbon b/toolchain/check/testdata/let/generic.carbon index 35c9c93b16896..c71032a74885a 100644 --- a/toolchain/check/testdata/let/generic.carbon +++ b/toolchain/check/testdata/let/generic.carbon @@ -39,16 +39,16 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.79f, () [symbolic] -// CHECK:STDOUT: %Destroy.impl_witness.71a: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.13f: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b86: %DestroyT.as_type.as.Destroy.impl.Op.type.13f = struct_value () [symbolic] +// CHECK:STDOUT: %Destroy.impl_witness.5e2: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ca5 = struct_value () [symbolic] // CHECK:STDOUT: %ptr.a13: type = ptr_type %ptr.79f [symbolic] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.71a) [symbolic] -// CHECK:STDOUT: %.280: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b86, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.79f, (%Destroy.impl_witness.5e2) [symbolic] +// CHECK:STDOUT: %.0f0: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.7c0, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -60,8 +60,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -103,12 +103,12 @@ fn F() { // CHECK:STDOUT: %a: %T = bind_name a, %.loc18_14.2 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%ptr.79f, () [symbolic = constants.%facet_value] // CHECK:STDOUT: %.loc17_3: %type_where = converted constants.%ptr.79f, %facet_value [symbolic = constants.%facet_value] -// CHECK:STDOUT: %impl.elem0: %.280 = impl_witness_access constants.%Destroy.impl_witness.71a, element0 [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.b86] +// CHECK:STDOUT: %impl.elem0: %.0f0 = impl_witness_access constants.%Destroy.impl_witness.5e2, element0 [symbolic = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7c0] // CHECK:STDOUT: %bound_method.loc17_3.1: = bound_method %p.var, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [symbolic = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_3.2: = bound_method %p.var, %specific_fn // CHECK:STDOUT: %addr: %ptr.a13 = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_3.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_3.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index 28400f3af4c76..3b5b5b9a20bcf 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -170,10 +170,10 @@ fn Run() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %A, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.709: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.84b: %DestroyT.as_type.as.Destroy.impl.Op.type.709 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9c9: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ccd: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9c9 = struct_value () [concrete] // CHECK:STDOUT: %ptr.07e: type = ptr_type %A [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.84b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.ccd, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -245,18 +245,18 @@ fn Run() { // CHECK:STDOUT: assign %a.ref, %F.call.loc13 // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_3: %type_where = converted constants.%A, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.84b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.84b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ccd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ccd, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc10: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.07e = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%A, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_11.3: %type_where = converted constants.%A, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.loc7_11.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.84b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.84b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7: = bound_method %.loc7_11.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.loc7_11.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ccd +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ccd, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7: = bound_method %.loc7_11.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.07e = addr_of %.loc7_11.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index d3837c5564853..94f223b4a11d7 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -78,10 +78,10 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -170,11 +170,11 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc29_12.2(%.loc29) // CHECK:STDOUT: %facet_value.loc26_5.1: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_5.2: %type_where = converted constants.%i32, %facet_value.loc26_5.1 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26_5.1: = bound_method %A.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_5.3: = bound_method %A.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26_5.1: = bound_method %A.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_5.3: = bound_method %A.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26_5.1: %ptr.235 = addr_of %A.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26_5.1: init %empty_tuple.type = call %bound_method.loc26_5.3(%addr.loc26_5.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26_5.1: init %empty_tuple.type = call %bound_method.loc26_5.3(%addr.loc26_5.1) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -187,11 +187,11 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %.loc31: init %i32 = converted %int_0.loc31, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc31 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc26_5.2: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_5.3: %type_where = converted constants.%i32, %facet_value.loc26_5.2 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26_5.2: = bound_method %A.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_5.4: = bound_method %A.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26_5.2: = bound_method %A.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_5.4: = bound_method %A.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc26_5.2: %ptr.235 = addr_of %A.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26_5.2: init %empty_tuple.type = call %bound_method.loc26_5.4(%addr.loc26_5.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26_5.2: init %empty_tuple.type = call %bound_method.loc26_5.4(%addr.loc26_5.2) // CHECK:STDOUT: return %.loc31 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/and.carbon b/toolchain/check/testdata/operators/builtin/and.carbon index d3b088563d556..d44583867647c 100644 --- a/toolchain/check/testdata/operators/builtin/and.carbon +++ b/toolchain/check/testdata/operators/builtin/and.carbon @@ -60,15 +60,15 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.999: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -354,32 +354,32 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %d: ref %empty_tuple.type = bind_name d, %d.var // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc26 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.843 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc25_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc25 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc25: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc25: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.843 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc24_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc24 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc24: %ptr.843 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] // CHECK:STDOUT: %.loc23_3: %type_where = converted bool, %facet_value.loc23 [concrete = constants.%facet_value.3f5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -428,11 +428,11 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a: ref %empty_tuple.type = bind_name a, %a.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc30_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index 13db6dc7012de..64be29b3d7a67 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -115,22 +115,22 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: %facet_value.de6: %type_where = facet_value %struct_type.a.b.501, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.de6) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f75: %DestroyT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.16f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.869: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.16f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.443: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.869, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] // CHECK:STDOUT: %facet_value.5be: %type_where = facet_value %tuple.type.d07, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5be) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1e3: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5be) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.40e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1e3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.009: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.40e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -359,32 +359,32 @@ fn Main() { // CHECK:STDOUT: assign %.loc30_3, %.loc30_29 // CHECK:STDOUT: %facet_value.loc27: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc27_3: %type_where = converted constants.%ptr.235, %facet_value.loc27 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc27_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc27: = bound_method %p.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc27_3: = bound_method %p.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27_3: %ptr.5d5 = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_3(%addr.loc27_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27: init %empty_tuple.type = call %bound_method.loc27_3(%addr.loc27_3) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%struct_type.a.b.501, () [concrete = constants.%facet_value.de6] // CHECK:STDOUT: %.loc23_3.2: %type_where = converted constants.%struct_type.a.b.501, %facet_value.loc23 [concrete = constants.%facet_value.de6] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f75 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.869 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.869, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.443] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.3ee = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value.5be] // CHECK:STDOUT: %.loc19_3.2: %type_where = converted constants.%tuple.type.d07, %facet_value.loc19 [concrete = constants.%facet_value.5be] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606] -// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.40e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.40e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.009] +// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc19: %ptr.261 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value.loc16 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon index 388619817c8e1..f7687ba0da491 100644 --- a/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_assignment_to_non_assignable.carbon @@ -137,9 +137,9 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -372,18 +372,18 @@ fn Main() { // CHECK:STDOUT: assign %.loc61_4, %.loc61_27 // CHECK:STDOUT: %facet_value.loc56: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc56_3: %type_where = converted constants.%i32, %facet_value.loc56 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc56: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc56: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc56: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc56: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56(%addr.loc56) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc56: init %empty_tuple.type = call %bound_method.loc56(%addr.loc56) // CHECK:STDOUT: %facet_value.loc33: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc33_3.2: %type_where = converted constants.%i32, %facet_value.loc33 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc33: = bound_method %n.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc33_3.3: = bound_method %n.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc33: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc33: init %empty_tuple.type = call %bound_method.loc33_3.3(%addr.loc33) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon index 519093136f094..90710a248e7e3 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -76,10 +76,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -169,11 +169,11 @@ fn Main() { // CHECK:STDOUT: assign %a.ref.loc28_3, %F.call // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_3.3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_3.3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_3.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon index 7cd1cef30d729..f8dbfe8eaebab 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon @@ -38,10 +38,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.999: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -85,11 +85,11 @@ fn Main() { // CHECK:STDOUT: %x: ref bool = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bb2 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon index 37557af3997c5..f2b506251c64f 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon @@ -56,10 +56,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -112,11 +112,11 @@ fn Main() { // CHECK:STDOUT: assign %a.ref, // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index dc2e3b6f5d730..6df5001a78c71 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -60,15 +60,15 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.999: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] // CHECK:STDOUT: %PartialConstant.type: type = fn_type @PartialConstant [concrete] // CHECK:STDOUT: %PartialConstant: %PartialConstant.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -361,32 +361,32 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %d: ref %empty_tuple.type = bind_name d, %d.var // CHECK:STDOUT: %facet_value.loc26: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc26_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc26 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %d.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc26: = bound_method %d.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc26: %ptr.843 = addr_of %d.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] // CHECK:STDOUT: %.loc25_3: %type_where = converted bool, %facet_value.loc25 [concrete = constants.%facet_value.3f5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] -// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %c.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %c.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8] +// CHECK:STDOUT: %bound_method.loc25_3: = bound_method %c.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc25: %ptr.bb2 = addr_of %c.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_3(%addr.loc25) // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] // CHECK:STDOUT: %.loc24_3: %type_where = converted bool, %facet_value.loc24 [concrete = constants.%facet_value.3f5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] -// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] // CHECK:STDOUT: %.loc23_3: %type_where = converted bool, %facet_value.loc23 [concrete = constants.%facet_value.3f5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -437,11 +437,11 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a: ref bool = bind_name a, %a.var // CHECK:STDOUT: %facet_value: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] // CHECK:STDOUT: %.loc30_3: %type_where = converted bool, %facet_value [concrete = constants.%facet_value.3f5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] -// CHECK:STDOUT: %bound_method.loc30_3: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8] +// CHECK:STDOUT: %bound_method.loc30_3: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bb2 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc30_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc30_3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 982274fdadd95..5da5ac6ab3ea3 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -50,15 +50,15 @@ fn Constant() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.3f5: %type_where = facet_value bool, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.28d: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.167: %DestroyT.as_type.as.Destroy.impl.Op.type.28d = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.999: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ea4 = struct_value () [concrete] // CHECK:STDOUT: %ptr.bb2: type = ptr_type bool [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.3f5) [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -206,18 +206,18 @@ fn Constant() { // CHECK:STDOUT: %b: ref bool = bind_name b, %b.var // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value bool, () [concrete = constants.%facet_value.3f5] // CHECK:STDOUT: %.loc24_3: %type_where = converted bool, %facet_value.loc24 [concrete = constants.%facet_value.3f5] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.167 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.167, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a8] -// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %b.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %b.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.999, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.3f5) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6e8] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %b.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc23_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc23 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23: %ptr.843 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index 6f078499b830e..ddefbdb0344a2 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -70,10 +70,10 @@ fn TestRef(b: C) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %C, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.075: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b80: %DestroyT.as_type.as.Destroy.impl.Op.type.075 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f93: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ed8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -183,11 +183,11 @@ fn TestRef(b: C) { // CHECK:STDOUT: %a.ref.loc46: ref %C = name_ref a, %a // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc36_3.2: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.b80 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b80, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %a.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f93, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %a.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.019 = addr_of %a.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index 3ee02e25483bb..5b7335275e3da 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -98,10 +98,10 @@ fn Test() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %X, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.177: %DestroyT.as_type.as.Destroy.impl.Op.type.dc1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.756: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b2e = struct_value () [concrete] // CHECK:STDOUT: %ptr.d17: type = ptr_type %X [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.177, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.756, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -330,18 +330,18 @@ fn Test() { // CHECK:STDOUT: %Sink_X.call: init %empty_tuple.type = call %Sink_X.ref(%.loc35_20.6) // CHECK:STDOUT: %facet_value.loc35: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc35_20.7: %type_where = converted constants.%X, %facet_value.loc35 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_20.5, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.177, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc35_20.2: = bound_method %.loc35_20.5, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc35: = bound_method %.loc35_20.5, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc35_20.2: = bound_method %.loc35_20.5, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc35: %ptr.d17 = addr_of %.loc35_20.5 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_20.2(%addr.loc35) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc35: init %empty_tuple.type = call %bound_method.loc35_20.2(%addr.loc35) // CHECK:STDOUT: %facet_value.loc34: %type_where = facet_value constants.%X, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc34_20.6: %type_where = converted constants.%X, %facet_value.loc34 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_20.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.177 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.177, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc34_20.2: = bound_method %.loc34_20.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc34: = bound_method %.loc34_20.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.756, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc34_20.2: = bound_method %.loc34_20.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc34: %ptr.d17 = addr_of %.loc34_20.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_20.2(%addr.loc34) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc34: init %empty_tuple.type = call %bound_method.loc34_20.2(%addr.loc34) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index 754c791f426fc..bb72dba6dfca5 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -174,8 +174,8 @@ fn F() { ()[()]; } // CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.68b = struct_value () [concrete] // CHECK:STDOUT: %IndexWith.type.472: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic] // CHECK:STDOUT: %Self: %IndexWith.type.472 = bind_symbolic_name Self, 2 [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a4e: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 2, %Self [symbolic] +// CHECK:STDOUT: %pattern_type.072: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %SubscriptType [symbolic] // CHECK:STDOUT: %pattern_type.a32: type = pattern_type %ElementType [symbolic] // CHECK:STDOUT: %IndexWith.At.type: type = fn_type @IndexWith.At, @IndexWith(%SubscriptType, %ElementType) [symbolic] @@ -214,22 +214,22 @@ fn F() { ()[()]; } // CHECK:STDOUT: interface { // CHECK:STDOUT: %Self.1: @IndexWith.%IndexWith.type (%IndexWith.type.472) = bind_symbolic_name Self, 2 [symbolic = %Self.2 (constants.%Self)] // CHECK:STDOUT: %IndexWith.At.decl: @IndexWith.%IndexWith.At.type (%IndexWith.At.type) = fn_decl @IndexWith.At [symbolic = @IndexWith.%IndexWith.At (constants.%IndexWith.At)] { -// CHECK:STDOUT: %self.patt: @IndexWith.At.%pattern_type.loc5_9 (%pattern_type.a4e) = binding_pattern self [concrete] -// CHECK:STDOUT: %self.param_patt: @IndexWith.At.%pattern_type.loc5_9 (%pattern_type.a4e) = value_param_pattern %self.patt, call_param0 [concrete] +// CHECK:STDOUT: %self.patt: @IndexWith.At.%pattern_type.loc5_9 (%pattern_type.072) = binding_pattern self [concrete] +// CHECK:STDOUT: %self.param_patt: @IndexWith.At.%pattern_type.loc5_9 (%pattern_type.072) = value_param_pattern %self.patt, call_param0 [concrete] // CHECK:STDOUT: %subscript.patt: @IndexWith.At.%pattern_type.loc5_21 (%pattern_type.7dc) = binding_pattern subscript [concrete] // CHECK:STDOUT: %subscript.param_patt: @IndexWith.At.%pattern_type.loc5_21 (%pattern_type.7dc) = value_param_pattern %subscript.patt, call_param1 [concrete] // CHECK:STDOUT: %return.patt: @IndexWith.At.%pattern_type.loc5_47 (%pattern_type.a32) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @IndexWith.At.%pattern_type.loc5_47 (%pattern_type.a32) = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, @IndexWith.%ElementType.loc4_43.2 [symbolic = %ElementType (constants.%ElementType)] -// CHECK:STDOUT: %self.param: @IndexWith.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: %self.param: @IndexWith.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: %.loc5_15.2: @IndexWith.At.%IndexWith.type (%IndexWith.type.472) = specific_constant @IndexWith.%Self.1, @IndexWith(constants.%SubscriptType, constants.%ElementType) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @IndexWith.At.%IndexWith.type (%IndexWith.type.472) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self)] -// 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: %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: } -// CHECK:STDOUT: %self: @IndexWith.At.%Self.as_type.loc5_15.1 (%Self.as_type) = bind_name self, %self.param +// CHECK:STDOUT: %self: @IndexWith.At.%Self.binding.as_type (%Self.binding.as_type) = bind_name self, %self.param // CHECK:STDOUT: %subscript.param: @IndexWith.At.%SubscriptType (%SubscriptType) = value_param call_param1 // CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, @IndexWith.%SubscriptType.loc4_21.2 [symbolic = %SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %subscript: @IndexWith.At.%SubscriptType (%SubscriptType) = bind_name subscript, %subscript.param @@ -252,12 +252,12 @@ fn F() { ()[()]; } // CHECK:STDOUT: %ElementType: type = bind_symbolic_name ElementType, 1 [symbolic = %ElementType (constants.%ElementType)] // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.472)] // CHECK:STDOUT: %Self: @IndexWith.At.%IndexWith.type (%IndexWith.type.472) = bind_symbolic_name Self, 2 [symbolic = %Self (constants.%Self)] -// 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_9: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type.loc5_9 (constants.%pattern_type.a4e)] +// 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_9: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_9 (constants.%pattern_type.072)] // CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %SubscriptType [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.7dc)] // CHECK:STDOUT: %pattern_type.loc5_47: type = pattern_type %ElementType [symbolic = %pattern_type.loc5_47 (constants.%pattern_type.a32)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @IndexWith.At.%Self.as_type.loc5_15.1 (%Self.as_type), %subscript.param: @IndexWith.At.%SubscriptType (%SubscriptType)) -> @IndexWith.At.%ElementType (%ElementType); +// CHECK:STDOUT: fn(%self.param: @IndexWith.At.%Self.binding.as_type (%Self.binding.as_type), %subscript.param: @IndexWith.At.%SubscriptType (%SubscriptType)) -> @IndexWith.At.%ElementType (%ElementType); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IndexWith(constants.%SubscriptType, constants.%ElementType) { @@ -270,8 +270,8 @@ fn F() { ()[()]; } // CHECK:STDOUT: %ElementType => constants.%ElementType // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.472 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.loc5_9 => constants.%pattern_type.a4e +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.loc5_9 => constants.%pattern_type.072 // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.7dc // CHECK:STDOUT: %pattern_type.loc5_47 => constants.%pattern_type.a32 // CHECK:STDOUT: } @@ -289,8 +289,8 @@ fn F() { ()[()]; } // CHECK:STDOUT: %IndexWith.At.type.8ac: type = fn_type @IndexWith.At, @IndexWith(%SubscriptType, %ElementType) [symbolic] // CHECK:STDOUT: %IndexWith.At.7c9: %IndexWith.At.type.8ac = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.a32: type = pattern_type %ElementType [symbolic] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.0d0 [symbolic] -// CHECK:STDOUT: %pattern_type.51b: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 2, %Self.0d0 [symbolic] +// CHECK:STDOUT: %pattern_type.41b: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.7dc: type = pattern_type %SubscriptType [symbolic] // CHECK:STDOUT: %IndexWith.assoc_type.d60: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType, %ElementType) [symbolic] // CHECK:STDOUT: %assoc0.b31: %IndexWith.assoc_type.d60 = assoc_entity element0, imports.%Core.import_ref.88c [symbolic] @@ -403,8 +403,8 @@ fn F() { ()[()]; } // CHECK:STDOUT: %ElementType: type = bind_symbolic_name ElementType, 1 [symbolic = %ElementType (constants.%ElementType)] // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.433)] // CHECK:STDOUT: %Self: @IndexWith.At.%IndexWith.type (%IndexWith.type.433) = bind_symbolic_name Self, 2 [symbolic = %Self (constants.%Self.0d0)] -// 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.51b)] +// 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.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.41b)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %SubscriptType [symbolic = %pattern_type.2 (constants.%pattern_type.7dc)] // CHECK:STDOUT: %pattern_type.3: type = pattern_type %ElementType [symbolic = %pattern_type.3 (constants.%pattern_type.a32)] // CHECK:STDOUT: @@ -438,8 +438,8 @@ fn F() { ()[()]; } // CHECK:STDOUT: %ElementType => constants.%ElementType // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.433 // CHECK:STDOUT: %Self => constants.%Self.0d0 -// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.51b +// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.41b // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.7dc // CHECK:STDOUT: %pattern_type.3 => constants.%pattern_type.a32 // CHECK:STDOUT: } @@ -462,7 +462,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: %ElementType => constants.%empty_tuple.type // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.5ee // CHECK:STDOUT: %Self => constants.%IndexWith.facet -// CHECK:STDOUT: %Self.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.cb1 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.cb1 // CHECK:STDOUT: %pattern_type.3 => constants.%pattern_type.cb1 diff --git a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon index 36625dd5820c3..5394ab1e2f091 100644 --- a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon +++ b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon @@ -96,7 +96,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %assoc0.a51: %IndexWith.assoc_type.f8f = assoc_entity element0, imports.%Core.import_ref.156 [concrete] // CHECK:STDOUT: %IndexWith.At.type.caa: type = fn_type @IndexWith.At, @IndexWith(%SubscriptType.8ee) [concrete] // CHECK:STDOUT: %assoc0.daf: %IndexWith.assoc_type.290 = assoc_entity element0, imports.%Core.import_ref.6c8 [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %IndexWith.lookup_impl_witness.0ce: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.8ee) [symbolic_self] // CHECK:STDOUT: %impl.elem0.859: type = impl_witness_access %IndexWith.lookup_impl_witness.0ce, element0 [symbolic_self] // CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.8ee) where %impl.elem0.859 = %ElementType> [concrete] @@ -150,8 +150,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.Self.ref: %IndexWith.type.d2d = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_47.1: %IndexWith.assoc_type.f8f = specific_constant imports.%Core.import_ref.c50, @IndexWith(constants.%SubscriptType.8ee) [concrete = constants.%assoc0.a51] // CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.f8f = name_ref ElementType, %.loc8_47.1 [concrete = constants.%assoc0.a51] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc8_47.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc8_47.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.0ce, element0 [symbolic_self = constants.%impl.elem0.859] // CHECK:STDOUT: %ElementType.ref.loc8_62: type = name_ref ElementType, file.%ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %.loc8_41: type = where_expr %.Self [concrete = constants.%IndexWith_where.type] { @@ -286,7 +286,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %assoc0.b5d: %IndexWith.assoc_type.972 = assoc_entity element0, imports.%Core.import_ref.156 [concrete] // CHECK:STDOUT: %IndexWith.At.type.1ab: type = fn_type @IndexWith.At, @IndexWith(Core.IntLiteral) [concrete] // CHECK:STDOUT: %assoc0.daf: %IndexWith.assoc_type.290 = assoc_entity element0, imports.%Core.import_ref.6c8 [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %IndexWith.lookup_impl_witness.f46: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(Core.IntLiteral) [symbolic_self] // CHECK:STDOUT: %impl.elem0.87a: type = impl_witness_access %IndexWith.lookup_impl_witness.f46, element0 [symbolic_self] // CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral) where %impl.elem0.87a = %i32> [concrete] @@ -384,8 +384,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.Self.ref: %IndexWith.type.8ab = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_60.1: %IndexWith.assoc_type.972 = specific_constant imports.%Core.import_ref.c50, @IndexWith(Core.IntLiteral) [concrete = constants.%assoc0.b5d] // CHECK:STDOUT: %ElementType.ref: %IndexWith.assoc_type.972 = name_ref ElementType, %.loc4_60.1 [concrete = constants.%assoc0.b5d] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc4_60.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc4_60.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.f46, element0 [symbolic_self = constants.%impl.elem0.87a] // CHECK:STDOUT: %int_32.loc4_75: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc4_75: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -512,7 +512,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %IndexWith.assoc_type.f8f: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.8ee) [concrete] // CHECK:STDOUT: %assoc0.a51: %IndexWith.assoc_type.f8f = assoc_entity element0, imports.%Core.import_ref.156 [concrete] // CHECK:STDOUT: %assoc0.daf: %IndexWith.assoc_type.290 = assoc_entity element0, imports.%Core.import_ref.6c8 [symbolic] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] // CHECK:STDOUT: %IndexWith.lookup_impl_witness.0ce: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.8ee) [symbolic_self] // CHECK:STDOUT: %impl.elem0.859: type = impl_witness_access %IndexWith.lookup_impl_witness.0ce, element0 [symbolic_self] // CHECK:STDOUT: %IndexWith_where.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType.8ee) where %impl.elem0.859 = %ElementType> [concrete] @@ -563,8 +563,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.Self.ref: %IndexWith.type.d2d = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_47.1: %IndexWith.assoc_type.f8f = specific_constant imports.%Core.import_ref.c50, @IndexWith(constants.%SubscriptType.8ee) [concrete = constants.%assoc0.a51] // CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.f8f = name_ref ElementType, %.loc8_47.1 [concrete = constants.%assoc0.a51] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc8_47.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc8_47.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.0ce, element0 [symbolic_self = constants.%impl.elem0.859] // CHECK:STDOUT: %ElementType.ref.loc8_62: type = name_ref ElementType, file.%ElementType.decl [concrete = constants.%ElementType] // CHECK:STDOUT: %.loc8_41: type = where_expr %.Self [concrete = constants.%IndexWith_where.type] { diff --git a/toolchain/check/testdata/package_expr/fail_not_found.carbon b/toolchain/check/testdata/package_expr/fail_not_found.carbon index 53d3e458465bb..59ab2b228ae6f 100644 --- a/toolchain/check/testdata/package_expr/fail_not_found.carbon +++ b/toolchain/check/testdata/package_expr/fail_not_found.carbon @@ -34,10 +34,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -78,11 +78,11 @@ fn Main() { // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %y.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index 7440d59f10195..9d3fa32754ae7 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -197,10 +197,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -283,18 +283,18 @@ fn Main() { // CHECK:STDOUT: %y: ref %i32 = bind_name y, %y.var // CHECK:STDOUT: %facet_value.loc9: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3: %type_where = converted constants.%i32, %facet_value.loc9 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9: = bound_method %y.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc9_3: = bound_method %y.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9: %ptr.235 = addr_of %y.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9: init %empty_tuple.type = call %bound_method.loc9_3(%addr.loc9) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%i32, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7_3.3: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7_3.3: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.235 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.3(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.3(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/patterns/underscore.carbon b/toolchain/check/testdata/patterns/underscore.carbon index 46d2bf0dc54bb..30d44b3c26564 100644 --- a/toolchain/check/testdata/patterns/underscore.carbon +++ b/toolchain/check/testdata/patterns/underscore.carbon @@ -121,10 +121,10 @@ fn F() -> {} { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bf3: %DestroyT.as_type.as.Destroy.impl.Op.type.6a4 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.596: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.bd1 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.596, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -194,11 +194,11 @@ fn F() -> {} { // CHECK:STDOUT: %_.loc9: ref %empty_struct_type = bind_name _, %_.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_struct_type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc9_3.2: %type_where = converted constants.%empty_struct_type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %_.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.bf3, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %_.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %_.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.596, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %_.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %_.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index fe7c809154605..8515fe83b29b3 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -60,9 +60,9 @@ fn F() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -134,11 +134,11 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc17_10.2(%.loc17_10.2) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %n.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index b352389e47868..567c05f07f78b 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -90,23 +90,23 @@ fn F() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: %facet_value.5be: %type_where = facet_value %tuple.type.d07, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.5be) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1e3: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.5be) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.40e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1e3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.009: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.40e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.5be) [concrete] // CHECK:STDOUT: %facet_value.494: %type_where = facet_value %ptr.3ee, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.9a5: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.494) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.7ac: %DestroyT.as_type.as.Destroy.impl.Op.type.9a5 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.584: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.494) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.ce5: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.584 = struct_value () [concrete] // CHECK:STDOUT: %ptr.40c: type = ptr_type %ptr.3ee [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e7: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.7ac, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.494) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.76b: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.ce5, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.494) [concrete] // CHECK:STDOUT: %facet_value.de6: %type_where = facet_value %struct_type.a.b.501, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.469: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.de6) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f75: %DestroyT.as_type.as.Destroy.impl.Op.type.469 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.16f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.de6) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.869: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.16f = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.443: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.869, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.de6) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -316,53 +316,53 @@ fn F() { // CHECK:STDOUT: %t1: ref %ptr.235 = bind_name t1, %t1.var // CHECK:STDOUT: %facet_value.loc24: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc24_3: %type_where = converted constants.%ptr.235, %facet_value.loc24 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %t1.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %t1.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc24: = bound_method %t1.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc24_3: = bound_method %t1.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc24_3: %ptr.5d5 = addr_of %t1.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc24: init %empty_tuple.type = call %bound_method.loc24_3(%addr.loc24_3) // CHECK:STDOUT: %facet_value.loc23: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc23_3: %type_where = converted constants.%ptr.235, %facet_value.loc23 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %t0.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %t0.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc23: = bound_method %t0.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc23_3: = bound_method %t0.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc23_3: %ptr.5d5 = addr_of %t0.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc23: init %empty_tuple.type = call %bound_method.loc23_3(%addr.loc23_3) // CHECK:STDOUT: %facet_value.loc22: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value.5be] // CHECK:STDOUT: %.loc22_3.2: %type_where = converted constants.%tuple.type.d07, %facet_value.loc22 [concrete = constants.%facet_value.5be] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %t.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.606] -// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %t.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc22: = bound_method %t.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.40e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.40e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.5be) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.009] +// CHECK:STDOUT: %bound_method.loc22_3: = bound_method %t.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc22: %ptr.261 = addr_of %t.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc22: init %empty_tuple.type = call %bound_method.loc22_3(%addr.loc22) // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc20_3: %type_where = converted constants.%ptr.235, %facet_value.loc20 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %r.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %r.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %r.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc20_3: = bound_method %r.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc20_3: %ptr.5d5 = addr_of %r.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_3(%addr.loc20_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_3(%addr.loc20_3) // CHECK:STDOUT: %facet_value.loc19: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc19_3: %type_where = converted constants.%ptr.235, %facet_value.loc19 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %q.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %q.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc19: = bound_method %q.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc19_3: = bound_method %q.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc19_3: %ptr.5d5 = addr_of %q.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc19: init %empty_tuple.type = call %bound_method.loc19_3(%addr.loc19_3) // CHECK:STDOUT: %facet_value.loc18: %type_where = facet_value constants.%ptr.3ee, () [concrete = constants.%facet_value.494] // CHECK:STDOUT: %.loc18_3: %type_where = converted constants.%ptr.3ee, %facet_value.loc18 [concrete = constants.%facet_value.494] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.7ac -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.7ac, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.494) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0e7] -// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc18: = bound_method %p.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ce5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.ce5, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.494) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.76b] +// CHECK:STDOUT: %bound_method.loc18_3: = bound_method %p.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6 // CHECK:STDOUT: %addr.loc18_3: %ptr.40c = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc18: init %empty_tuple.type = call %bound_method.loc18_3(%addr.loc18_3) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%struct_type.a.b.501, () [concrete = constants.%facet_value.de6] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%struct_type.a.b.501, %facet_value.loc16 [concrete = constants.%facet_value.de6] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %s.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f75 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f75, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.0f3] -// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %s.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %s.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.869 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.7: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.869, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.de6) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.443] +// CHECK:STDOUT: %bound_method.loc16_3: = bound_method %s.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.7 // CHECK:STDOUT: %addr.loc16: %ptr.3ee = addr_of %s.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3(%addr.loc16) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index ce28503f007b4..7e1e5bd44396c 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -72,14 +72,14 @@ fn F() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.380: %type_where = facet_value %ptr.235, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.e11: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.380) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.52b: %DestroyT.as_type.as.Destroy.impl.Op.type.e11 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.73d = struct_value () [concrete] // CHECK:STDOUT: %ptr.5d5: type = ptr_type %ptr.235 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.380) [concrete] // CHECK:STDOUT: %facet_value.d23: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.d23) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.d23) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.d23) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -170,18 +170,18 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc19_10.2(%.loc19_10.2) // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%ptr.235, () [concrete = constants.%facet_value.380] // CHECK:STDOUT: %.loc17_3: %type_where = converted constants.%ptr.235, %facet_value.loc17 [concrete = constants.%facet_value.380] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %p.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.52b -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.52b, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.e9c] -// CHECK:STDOUT: %bound_method.loc17_3: = bound_method %p.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %p.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62d, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.380) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.d52] +// CHECK:STDOUT: %bound_method.loc17_3: = bound_method %p.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc17_3: %ptr.5d5 = addr_of %p.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_3(%addr.loc17_3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_3(%addr.loc17_3) // CHECK:STDOUT: %facet_value.loc16: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value.d23] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%i32, %facet_value.loc16 [concrete = constants.%facet_value.d23] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %n.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5a0] -// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc16: = bound_method %n.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.d23) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8ab] +// CHECK:STDOUT: %bound_method.loc16_3.3: = bound_method %n.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc16: %ptr.235 = addr_of %n.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc16: init %empty_tuple.type = call %bound_method.loc16_3.3(%addr.loc16) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/nested_const.carbon b/toolchain/check/testdata/pointer/nested_const.carbon index a29f966bb33e2..a2646eeb06159 100644 --- a/toolchain/check/testdata/pointer/nested_const.carbon +++ b/toolchain/check/testdata/pointer/nested_const.carbon @@ -39,16 +39,16 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.afd: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.6cd: %Int.as.Copy.impl.Op.type.afd = struct_value () [symbolic] // CHECK:STDOUT: %T.be8: %Copy.type = bind_symbolic_name T, 0 [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.333: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.be8) [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.756: %const.as.Copy.impl.Op.type.333 = struct_value () [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.c2e: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.be8) [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.a33: %const.as.Copy.impl.Op.type.c2e = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.a32: = impl_witness imports.%Copy.impl_witness_table.1ed, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Copy.facet.c49: %Copy.type = facet_value %i32, (%Copy.impl_witness.a32) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.327: = impl_witness imports.%Copy.impl_witness_table.83a, @const.as.Copy.impl(%Copy.facet.c49) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.3d0: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.c49) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.2b9: %const.as.Copy.impl.Op.type.3d0 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7e2: %Copy.type = facet_value %const.20a, (%Copy.impl_witness.327) [concrete] -// CHECK:STDOUT: %.56b: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.7e2 [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.2b9, @const.as.Copy.impl.Op(%Copy.facet.c49) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.e96: = impl_witness imports.%Copy.impl_witness_table.9cd, @const.as.Copy.impl(%Copy.facet.c49) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.1fc: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.c49) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.c18: %const.as.Copy.impl.Op.type.1fc = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.b9f: %Copy.type = facet_value %const.20a, (%Copy.impl_witness.e96) [concrete] +// CHECK:STDOUT: %.78c: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet.b9f [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.c18, @const.as.Copy.impl.Op(%Copy.facet.c49) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -62,8 +62,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.d0f6: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.afd) = 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.6cd)] // CHECK:STDOUT: %Copy.impl_witness_table.1ed = impl_witness_table (%Core.import_ref.d0f6), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.c13: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.333) = 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.756)] -// CHECK:STDOUT: %Copy.impl_witness_table.83a = impl_witness_table (%Core.import_ref.c13), @const.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.722: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.c2e) = 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.a33)] +// CHECK:STDOUT: %Copy.impl_witness_table.9cd = impl_witness_table (%Core.import_ref.722), @const.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -106,7 +106,7 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: %.loc17_10.2: %const.20a = bind_value %.loc17_10.1 // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%i32, (constants.%Copy.impl_witness.a32) [concrete = constants.%Copy.facet.c49] // CHECK:STDOUT: %.loc17_10.3: %Copy.type = converted constants.%i32, %Copy.facet [concrete = constants.%Copy.facet.c49] -// CHECK:STDOUT: %impl.elem0: %.56b = impl_witness_access constants.%Copy.impl_witness.327, element0 [concrete = constants.%const.as.Copy.impl.Op.2b9] +// CHECK:STDOUT: %impl.elem0: %.78c = impl_witness_access constants.%Copy.impl_witness.e96, element0 [concrete = constants.%const.as.Copy.impl.Op.c18] // 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.c49) [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/primitives/import_symbolic.carbon b/toolchain/check/testdata/primitives/import_symbolic.carbon index dcfcb72c3b84f..27c7c47232515 100644 --- a/toolchain/check/testdata/primitives/import_symbolic.carbon +++ b/toolchain/check/testdata/primitives/import_symbolic.carbon @@ -255,8 +255,8 @@ fn F() -> u32 { // CHECK:STDOUT: %assoc0.941: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.8e8 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %Copy.impl_witness.9ba: = impl_witness imports.%Copy.impl_witness_table.0e0 [concrete] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.9ba7: = impl_witness imports.%Copy.impl_witness_table.0e0 [concrete] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %char, (%Copy.impl_witness.9ba7) [concrete] // CHECK:STDOUT: %.1ed: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op.type: type = fn_type @char.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %char.as.Copy.impl.Op: %char.as.Copy.impl.Op.type = struct_value () [concrete] @@ -285,7 +285,7 @@ fn F() -> u32 { // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_13 [concrete = constants.%C] // CHECK:STDOUT: %.loc7_18: type = converted %.loc7_13, %as_type [concrete = constants.%C] // CHECK:STDOUT: %impl.elem0.loc7_18.1: %char = impl_witness_access constants.%I.impl_witness, element0 [concrete = constants.%int_97] -// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.1ed = impl_witness_access constants.%Copy.impl_witness.9ba, element0 [concrete = constants.%char.as.Copy.impl.Op] +// CHECK:STDOUT: %impl.elem0.loc7_18.2: %.1ed = impl_witness_access constants.%Copy.impl_witness.9ba7, element0 [concrete = constants.%char.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %impl.elem0.loc7_18.1, %impl.elem0.loc7_18.2 [concrete = constants.%char.as.Copy.impl.Op.bound] // CHECK:STDOUT: %char.as.Copy.impl.Op.call: init %char = call %bound_method(%impl.elem0.loc7_18.1) [concrete = constants.%int_97] // CHECK:STDOUT: return %char.as.Copy.impl.Op.call to %return diff --git a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon index f09f96608742d..a177fbb8f08e8 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -69,10 +69,10 @@ fn G() -> C { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %i32 [concrete] // CHECK:STDOUT: %struct_type.a.b.501: type = struct_type {.a: %i32, .b: %i32} [concrete] @@ -173,11 +173,11 @@ fn G() -> C { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_12.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc16_12.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc16_12.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_12.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_12.3(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon b/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon index d23aa5e59cfa7..d56dc69883da2 100644 --- a/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_no_return_type.carbon @@ -59,10 +59,10 @@ fn ForgotReturnType() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -101,11 +101,11 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v: ref %empty_tuple.type = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_12.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -120,10 +120,10 @@ fn ForgotReturnType() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -162,11 +162,11 @@ fn ForgotReturnType() { // CHECK:STDOUT: %v: ref %empty_tuple.type = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc12_12.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index ff35a3bc7e285..bc6f0f92f2a38 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -80,10 +80,10 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %DifferentScopes.type: type = fn_type @DifferentScopes [concrete] // CHECK:STDOUT: %DifferentScopes: %DifferentScopes.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -184,18 +184,18 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %.loc27: init %i32 = converted %int_0.loc27, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc27 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc25: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc25_14.2: %type_where = converted constants.%i32, %facet_value.loc25 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc25_14.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc25: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc25_14.3: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc25: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_14.3(%addr.loc25) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc25: init %empty_tuple.type = call %bound_method.loc25_14.3(%addr.loc25) // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc17_14.2: %type_where = converted constants.%i32, %facet_value.loc17 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) // CHECK:STDOUT: return %.loc27 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -260,18 +260,18 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %.loc44: init %i32 = converted %int_0.loc44, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc44 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc41: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc41_16.2: %type_where = converted constants.%i32, %facet_value.loc41 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc41_16.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc41: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc41_16.3: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc41: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_16.3(%addr.loc41) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc41: init %empty_tuple.type = call %bound_method.loc41_16.3(%addr.loc41) // CHECK:STDOUT: %facet_value.loc32: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc32_14.2: %type_where = converted constants.%i32, %facet_value.loc32 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc32_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc32: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc32_14.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc32: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_14.3(%addr.loc32) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc32: init %empty_tuple.type = call %bound_method.loc32_14.3(%addr.loc32) // CHECK:STDOUT: return %.loc44 to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index 7d94b762628bb..e8862405bdc17 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -60,10 +60,10 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %f64.d77, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.0bc: %DestroyT.as_type.as.Destroy.impl.Op.type.fb8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a4c: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b46: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a4c = struct_value () [concrete] // CHECK:STDOUT: %ptr.bcc: type = ptr_type %f64.d77 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.0bc, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.b46, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -123,11 +123,11 @@ fn Mismatch() -> i32 { // CHECK:STDOUT: %.loc23_16: %f64.d77 = bind_value %v // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%f64.d77, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc23_12.2: %type_where = converted constants.%f64.d77, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.0bc -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.0bc, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc23_12.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b46 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b46, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc23_12.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.bcc = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_12.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc23_12.3(%addr) // CHECK:STDOUT: return %.loc23_16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/import_convert_function.carbon b/toolchain/check/testdata/return/import_convert_function.carbon index 48fcc65668742..325efcb9e9f3d 100644 --- a/toolchain/check/testdata/return/import_convert_function.carbon +++ b/toolchain/check/testdata/return/import_convert_function.carbon @@ -758,10 +758,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.e56: %type_where = facet_value %C.b00, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a78: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.e56) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.050: %DestroyT.as_type.as.Destroy.impl.Op.type.a78 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.770: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.e56) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.6ee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.770 = struct_value () [concrete] // CHECK:STDOUT: %ptr.697: type = ptr_type %C.b00 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.e56) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.e56) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.abf: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.c11: = bound_method %int_1.5b8, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -772,10 +772,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.f4e: type = fn_type @C.as.ImplicitAs.impl.Convert.2 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.e68: %C.as.ImplicitAs.impl.Convert.type.f4e = struct_value () [concrete] // CHECK:STDOUT: %facet_value.4dd: %type_where = facet_value %C.674, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.895: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.4dd) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.998: %DestroyT.as_type.as.Destroy.impl.Op.type.895 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9b2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4dd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.461: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9b2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.625: type = ptr_type %C.674 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.4dd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.4dd) [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.b82: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.8bd: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -786,10 +786,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.7cc: type = fn_type @C.as.ImplicitAs.impl.Convert.3 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.cb1: %C.as.ImplicitAs.impl.Convert.type.7cc = struct_value () [concrete] // CHECK:STDOUT: %facet_value.7fe: %type_where = facet_value %C.681, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.a2a: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.7fe) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.aa7: %DestroyT.as_type.as.Destroy.impl.Op.type.a2a = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.784: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.7fe) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.603: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.784 = struct_value () [concrete] // CHECK:STDOUT: %ptr.3bd: type = ptr_type %C.681 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.7fe) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.7fe) [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.595: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.f36: = bound_method %int_3.1ba, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -800,10 +800,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.cba: type = fn_type @C.as.ImplicitAs.impl.Convert.4 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.67e: %C.as.ImplicitAs.impl.Convert.type.cba = struct_value () [concrete] // CHECK:STDOUT: %facet_value.99b: %type_where = facet_value %C.7ac, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.af2: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.99b) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.423: %DestroyT.as_type.as.Destroy.impl.Op.type.af2 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.56e: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.99b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.b75: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.56e = struct_value () [concrete] // CHECK:STDOUT: %ptr.2b1: type = ptr_type %C.7ac [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.99b) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.714: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.b75, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.99b) [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5bb: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.9cd: = bound_method %int_4.0c1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -814,10 +814,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.a2c: type = fn_type @C.as.ImplicitAs.impl.Convert.5 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.58d: %C.as.ImplicitAs.impl.Convert.type.a2c = struct_value () [concrete] // CHECK:STDOUT: %facet_value.b4c: %type_where = facet_value %C.89d, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.d8b: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.b4c) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b4d: %DestroyT.as_type.as.Destroy.impl.Op.type.d8b = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.806: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.b4c) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.87e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.806 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28b: type = ptr_type %C.89d [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.b4c) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31a: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.87e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.b4c) [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.23d: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.724: = bound_method %int_5.64b, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -828,10 +828,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.bf6: type = fn_type @C.as.ImplicitAs.impl.Convert.6 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.a45: %C.as.ImplicitAs.impl.Convert.type.bf6 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.430: %type_where = facet_value %C.f0a, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.430) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.b39: %DestroyT.as_type.as.Destroy.impl.Op.type.4eb = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1f2: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.430) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.42c: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1f2 = struct_value () [concrete] // CHECK:STDOUT: %ptr.24c: type = ptr_type %C.f0a [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.430) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.e91: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.42c, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.430) [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.d66: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.0ef: = bound_method %int_6.462, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -842,10 +842,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.e95: type = fn_type @C.as.ImplicitAs.impl.Convert.7 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.ad0: %C.as.ImplicitAs.impl.Convert.type.e95 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.14a: %type_where = facet_value %C.c60, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.ecc: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.14a) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.062: %DestroyT.as_type.as.Destroy.impl.Op.type.ecc = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f15: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.14a) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.57e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f15 = struct_value () [concrete] // CHECK:STDOUT: %ptr.b5e: type = ptr_type %C.c60 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.14a) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.636: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.57e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.14a) [concrete] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.113: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0f0 [concrete] // CHECK:STDOUT: %bound_method.763: = bound_method %int_7.29f, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -856,10 +856,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.type.7ddb0: type = fn_type @C.as.ImplicitAs.impl.Convert.8 [concrete] // CHECK:STDOUT: %C.as.ImplicitAs.impl.Convert.9be: %C.as.ImplicitAs.impl.Convert.type.7ddb0 = struct_value () [concrete] // CHECK:STDOUT: %facet_value.488: %type_where = facet_value %C.304, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.963: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.488) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.28e: %DestroyT.as_type.as.Destroy.impl.Op.type.963 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d42: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.488) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.c1f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d42 = struct_value () [concrete] // CHECK:STDOUT: %ptr.dc3: type = ptr_type %C.304 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8dc: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.28e, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.488) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a6c: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.c1f, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.488) [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] // CHECK:STDOUT: %Make: %Make.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1054,11 +1054,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc7_35.2: init %D = converted %.loc7_26.1, %C.as.ImplicitAs.impl.Convert.call.loc7 // CHECK:STDOUT: %facet_value.loc7_24.1: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.5: %type_where = converted constants.%C.b00, %facet_value.loc7_24.1 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.1: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.1: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.1: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.1: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc7_24.1: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.1: init %empty_tuple.type = call %bound_method.loc7_24.1(%addr.loc7_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.1: init %empty_tuple.type = call %bound_method.loc7_24.1(%addr.loc7_24.1) // CHECK:STDOUT: return %.loc7_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc7: @@ -1090,18 +1090,18 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc8_35.2: init %D = converted %.loc8_26.1, %C.as.ImplicitAs.impl.Convert.call.loc8 // CHECK:STDOUT: %facet_value.loc8_24.1: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.5: %type_where = converted constants.%C.674, %facet_value.loc8_24.1 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.1: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.1: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.1: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.1: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_24.1: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.1: init %empty_tuple.type = call %bound_method.loc8_24.1(%addr.loc8_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.1: init %empty_tuple.type = call %bound_method.loc8_24.1(%addr.loc8_24.1) // CHECK:STDOUT: %facet_value.loc7_24.2: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.6: %type_where = converted constants.%C.b00, %facet_value.loc7_24.2 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.2: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.2: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.2: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.2: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc7_24.2: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.2: init %empty_tuple.type = call %bound_method.loc7_24.2(%addr.loc7_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.2: init %empty_tuple.type = call %bound_method.loc7_24.2(%addr.loc7_24.2) // CHECK:STDOUT: return %.loc8_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc8: @@ -1133,25 +1133,25 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc9_35.2: init %D = converted %.loc9_26.1, %C.as.ImplicitAs.impl.Convert.call.loc9 // CHECK:STDOUT: %facet_value.loc9_24.1: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.5: %type_where = converted constants.%C.681, %facet_value.loc9_24.1 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.1: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.1: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_24.1: = bound_method %.loc9_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd] +// CHECK:STDOUT: %bound_method.loc9_24.1: = bound_method %.loc9_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4 // CHECK:STDOUT: %addr.loc9_24.1: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.1: init %empty_tuple.type = call %bound_method.loc9_24.1(%addr.loc9_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_24.1: init %empty_tuple.type = call %bound_method.loc9_24.1(%addr.loc9_24.1) // CHECK:STDOUT: %facet_value.loc8_24.2: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.6: %type_where = converted constants.%C.674, %facet_value.loc8_24.2 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.2: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.2: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.2: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.2: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.5 // CHECK:STDOUT: %addr.loc8_24.2: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.2: init %empty_tuple.type = call %bound_method.loc8_24.2(%addr.loc8_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.2: init %empty_tuple.type = call %bound_method.loc8_24.2(%addr.loc8_24.2) // CHECK:STDOUT: %facet_value.loc7_24.3: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.7: %type_where = converted constants.%C.b00, %facet_value.loc7_24.3 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.3: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.3: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.6 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.3: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.3: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.6 // CHECK:STDOUT: %addr.loc7_24.3: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.3: init %empty_tuple.type = call %bound_method.loc7_24.3(%addr.loc7_24.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.3: init %empty_tuple.type = call %bound_method.loc7_24.3(%addr.loc7_24.3) // CHECK:STDOUT: return %.loc9_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc9: @@ -1183,32 +1183,32 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc10_35.2: init %D = converted %.loc10_26.1, %C.as.ImplicitAs.impl.Convert.call.loc10 // CHECK:STDOUT: %facet_value.loc10_24.1: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.5: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.1 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.1: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.1: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_24.1: = bound_method %.loc10_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.7: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.714] +// CHECK:STDOUT: %bound_method.loc10_24.1: = bound_method %.loc10_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.7 // CHECK:STDOUT: %addr.loc10_24.1: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.1: init %empty_tuple.type = call %bound_method.loc10_24.1(%addr.loc10_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_24.1: init %empty_tuple.type = call %bound_method.loc10_24.1(%addr.loc10_24.1) // CHECK:STDOUT: %facet_value.loc9_24.2: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.6: %type_where = converted constants.%C.681, %facet_value.loc9_24.2 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.2: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.2: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_24.2: = bound_method %.loc9_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd] +// CHECK:STDOUT: %bound_method.loc9_24.2: = bound_method %.loc9_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.8 // CHECK:STDOUT: %addr.loc9_24.2: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.2: init %empty_tuple.type = call %bound_method.loc9_24.2(%addr.loc9_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_24.2: init %empty_tuple.type = call %bound_method.loc9_24.2(%addr.loc9_24.2) // CHECK:STDOUT: %facet_value.loc8_24.3: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.7: %type_where = converted constants.%C.674, %facet_value.loc8_24.3 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.3: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.3: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.9 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.3: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.3: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.9 // CHECK:STDOUT: %addr.loc8_24.3: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.3: init %empty_tuple.type = call %bound_method.loc8_24.3(%addr.loc8_24.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.3: init %empty_tuple.type = call %bound_method.loc8_24.3(%addr.loc8_24.3) // CHECK:STDOUT: %facet_value.loc7_24.4: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.8: %type_where = converted constants.%C.b00, %facet_value.loc7_24.4 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.4: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.10: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.4: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.10 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.4: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.10: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.4: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.10 // CHECK:STDOUT: %addr.loc7_24.4: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.4: init %empty_tuple.type = call %bound_method.loc7_24.4(%addr.loc7_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.4: init %empty_tuple.type = call %bound_method.loc7_24.4(%addr.loc7_24.4) // CHECK:STDOUT: return %.loc10_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc10: @@ -1240,39 +1240,39 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc11_35.2: init %D = converted %.loc11_26.1, %C.as.ImplicitAs.impl.Convert.call.loc11 // CHECK:STDOUT: %facet_value.loc11_24.1: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.5: %type_where = converted constants.%C.89d, %facet_value.loc11_24.1 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.1: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.11: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.1: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.11 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11_24.1: = bound_method %.loc11_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.11: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31a] +// CHECK:STDOUT: %bound_method.loc11_24.1: = bound_method %.loc11_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.11 // CHECK:STDOUT: %addr.loc11_24.1: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.1: init %empty_tuple.type = call %bound_method.loc11_24.1(%addr.loc11_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11_24.1: init %empty_tuple.type = call %bound_method.loc11_24.1(%addr.loc11_24.1) // CHECK:STDOUT: %facet_value.loc10_24.2: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.6: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.2 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.2: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.12: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.2: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.12 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_24.2: = bound_method %.loc10_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.12: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.714] +// CHECK:STDOUT: %bound_method.loc10_24.2: = bound_method %.loc10_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.12 // CHECK:STDOUT: %addr.loc10_24.2: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.2: init %empty_tuple.type = call %bound_method.loc10_24.2(%addr.loc10_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_24.2: init %empty_tuple.type = call %bound_method.loc10_24.2(%addr.loc10_24.2) // CHECK:STDOUT: %facet_value.loc9_24.3: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.7: %type_where = converted constants.%C.681, %facet_value.loc9_24.3 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.3: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.13: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.3: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.13 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_24.3: = bound_method %.loc9_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.13: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd] +// CHECK:STDOUT: %bound_method.loc9_24.3: = bound_method %.loc9_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.13 // CHECK:STDOUT: %addr.loc9_24.3: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.3: init %empty_tuple.type = call %bound_method.loc9_24.3(%addr.loc9_24.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_24.3: init %empty_tuple.type = call %bound_method.loc9_24.3(%addr.loc9_24.3) // CHECK:STDOUT: %facet_value.loc8_24.4: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.8: %type_where = converted constants.%C.674, %facet_value.loc8_24.4 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.4: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.14: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.4: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.14 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.4: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.14: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.4: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.14 // CHECK:STDOUT: %addr.loc8_24.4: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.4: init %empty_tuple.type = call %bound_method.loc8_24.4(%addr.loc8_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.4: init %empty_tuple.type = call %bound_method.loc8_24.4(%addr.loc8_24.4) // CHECK:STDOUT: %facet_value.loc7_24.5: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.9: %type_where = converted constants.%C.b00, %facet_value.loc7_24.5 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.5: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.15: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.5: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.15 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.5: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.15: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.5: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.15 // CHECK:STDOUT: %addr.loc7_24.5: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.5: init %empty_tuple.type = call %bound_method.loc7_24.5(%addr.loc7_24.5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.5: init %empty_tuple.type = call %bound_method.loc7_24.5(%addr.loc7_24.5) // CHECK:STDOUT: return %.loc11_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc11: @@ -1304,46 +1304,46 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc12_35.2: init %D = converted %.loc12_26.1, %C.as.ImplicitAs.impl.Convert.call.loc12 // CHECK:STDOUT: %facet_value.loc12_24.1: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.5: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.1 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.1: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.16: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.1: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.16 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12_24.1: = bound_method %.loc12_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.16: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.e91] +// CHECK:STDOUT: %bound_method.loc12_24.1: = bound_method %.loc12_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.16 // CHECK:STDOUT: %addr.loc12_24.1: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.1: init %empty_tuple.type = call %bound_method.loc12_24.1(%addr.loc12_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12_24.1: init %empty_tuple.type = call %bound_method.loc12_24.1(%addr.loc12_24.1) // CHECK:STDOUT: %facet_value.loc11_24.2: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.6: %type_where = converted constants.%C.89d, %facet_value.loc11_24.2 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.2: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.17: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.2: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.17 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11_24.2: = bound_method %.loc11_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.17: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31a] +// CHECK:STDOUT: %bound_method.loc11_24.2: = bound_method %.loc11_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.17 // CHECK:STDOUT: %addr.loc11_24.2: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.2: init %empty_tuple.type = call %bound_method.loc11_24.2(%addr.loc11_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11_24.2: init %empty_tuple.type = call %bound_method.loc11_24.2(%addr.loc11_24.2) // CHECK:STDOUT: %facet_value.loc10_24.3: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.7: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.3 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.3: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.18: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.3: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.18 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_24.3: = bound_method %.loc10_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.18: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.714] +// CHECK:STDOUT: %bound_method.loc10_24.3: = bound_method %.loc10_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.18 // CHECK:STDOUT: %addr.loc10_24.3: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.3: init %empty_tuple.type = call %bound_method.loc10_24.3(%addr.loc10_24.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_24.3: init %empty_tuple.type = call %bound_method.loc10_24.3(%addr.loc10_24.3) // CHECK:STDOUT: %facet_value.loc9_24.4: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.8: %type_where = converted constants.%C.681, %facet_value.loc9_24.4 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.4: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.19: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.4: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.19 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_24.4: = bound_method %.loc9_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.19: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd] +// CHECK:STDOUT: %bound_method.loc9_24.4: = bound_method %.loc9_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.19 // CHECK:STDOUT: %addr.loc9_24.4: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.4: init %empty_tuple.type = call %bound_method.loc9_24.4(%addr.loc9_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_24.4: init %empty_tuple.type = call %bound_method.loc9_24.4(%addr.loc9_24.4) // CHECK:STDOUT: %facet_value.loc8_24.5: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.9: %type_where = converted constants.%C.674, %facet_value.loc8_24.5 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.5: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.20: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.5: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.20 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.5: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.20: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.5: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.20 // CHECK:STDOUT: %addr.loc8_24.5: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.5: init %empty_tuple.type = call %bound_method.loc8_24.5(%addr.loc8_24.5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.5: init %empty_tuple.type = call %bound_method.loc8_24.5(%addr.loc8_24.5) // CHECK:STDOUT: %facet_value.loc7_24.6: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.10: %type_where = converted constants.%C.b00, %facet_value.loc7_24.6 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.6: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.21: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.6: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.21 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.6: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.21: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.6: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.21 // CHECK:STDOUT: %addr.loc7_24.6: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.6: init %empty_tuple.type = call %bound_method.loc7_24.6(%addr.loc7_24.6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.6: init %empty_tuple.type = call %bound_method.loc7_24.6(%addr.loc7_24.6) // CHECK:STDOUT: return %.loc12_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc12: @@ -1375,53 +1375,53 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc13_35.2: init %D = converted %.loc13_26.1, %C.as.ImplicitAs.impl.Convert.call.loc13 // CHECK:STDOUT: %facet_value.loc13_24.1: %type_where = facet_value constants.%C.c60, () [concrete = constants.%facet_value.14a] // CHECK:STDOUT: %.loc13_24.5: %type_where = converted constants.%C.c60, %facet_value.loc13_24.1 [concrete = constants.%facet_value.14a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_24.1: = bound_method %.loc13_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.062 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.22: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7] -// CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %.loc13_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.22 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_24.1: = bound_method %.loc13_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.22: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.636] +// CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %.loc13_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.22 // CHECK:STDOUT: %addr.loc13_24.1: %ptr.b5e = addr_of %.loc13_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_24.1: init %empty_tuple.type = call %bound_method.loc13_24.1(%addr.loc13_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_24.1: init %empty_tuple.type = call %bound_method.loc13_24.1(%addr.loc13_24.1) // CHECK:STDOUT: %facet_value.loc12_24.2: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.6: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.2 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.2: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.23: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.2: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.23 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12_24.2: = bound_method %.loc12_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.23: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.e91] +// CHECK:STDOUT: %bound_method.loc12_24.2: = bound_method %.loc12_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.23 // CHECK:STDOUT: %addr.loc12_24.2: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.2: init %empty_tuple.type = call %bound_method.loc12_24.2(%addr.loc12_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12_24.2: init %empty_tuple.type = call %bound_method.loc12_24.2(%addr.loc12_24.2) // CHECK:STDOUT: %facet_value.loc11_24.3: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.7: %type_where = converted constants.%C.89d, %facet_value.loc11_24.3 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.3: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.3: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.24 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11_24.3: = bound_method %.loc11_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.24: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31a] +// CHECK:STDOUT: %bound_method.loc11_24.3: = bound_method %.loc11_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.24 // CHECK:STDOUT: %addr.loc11_24.3: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.3: init %empty_tuple.type = call %bound_method.loc11_24.3(%addr.loc11_24.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11_24.3: init %empty_tuple.type = call %bound_method.loc11_24.3(%addr.loc11_24.3) // CHECK:STDOUT: %facet_value.loc10_24.4: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.8: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.4 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.4: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.25: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.4: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.25 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_24.4: = bound_method %.loc10_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.25: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.714] +// CHECK:STDOUT: %bound_method.loc10_24.4: = bound_method %.loc10_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.25 // CHECK:STDOUT: %addr.loc10_24.4: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.4: init %empty_tuple.type = call %bound_method.loc10_24.4(%addr.loc10_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_24.4: init %empty_tuple.type = call %bound_method.loc10_24.4(%addr.loc10_24.4) // CHECK:STDOUT: %facet_value.loc9_24.5: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.9: %type_where = converted constants.%C.681, %facet_value.loc9_24.5 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.5: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.26: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.5: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.26 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_24.5: = bound_method %.loc9_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.26: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd] +// CHECK:STDOUT: %bound_method.loc9_24.5: = bound_method %.loc9_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.26 // CHECK:STDOUT: %addr.loc9_24.5: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.5: init %empty_tuple.type = call %bound_method.loc9_24.5(%addr.loc9_24.5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_24.5: init %empty_tuple.type = call %bound_method.loc9_24.5(%addr.loc9_24.5) // CHECK:STDOUT: %facet_value.loc8_24.6: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.10: %type_where = converted constants.%C.674, %facet_value.loc8_24.6 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.6: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.27: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.6: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.27 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.6: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.27: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.6: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.27 // CHECK:STDOUT: %addr.loc8_24.6: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.6: init %empty_tuple.type = call %bound_method.loc8_24.6(%addr.loc8_24.6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.6: init %empty_tuple.type = call %bound_method.loc8_24.6(%addr.loc8_24.6) // CHECK:STDOUT: %facet_value.loc7_24.7: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.11: %type_where = converted constants.%C.b00, %facet_value.loc7_24.7 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.7: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.28: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.7: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.28 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.7: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.28: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.7: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.28 // CHECK:STDOUT: %addr.loc7_24.7: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.7: init %empty_tuple.type = call %bound_method.loc7_24.7(%addr.loc7_24.7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.7: init %empty_tuple.type = call %bound_method.loc7_24.7(%addr.loc7_24.7) // CHECK:STDOUT: return %.loc13_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc13: @@ -1453,60 +1453,60 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc14_35.2: init %D = converted %.loc14_26.1, %C.as.ImplicitAs.impl.Convert.call.loc14 // CHECK:STDOUT: %facet_value.loc14_24.1: %type_where = facet_value constants.%C.304, () [concrete = constants.%facet_value.488] // CHECK:STDOUT: %.loc14_24.5: %type_where = converted constants.%C.304, %facet_value.loc14_24.1 [concrete = constants.%facet_value.488] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14_24.1: = bound_method %.loc14_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.28e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.29: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.28e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8dc] -// CHECK:STDOUT: %bound_method.loc14_24.1: = bound_method %.loc14_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.29 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14_24.1: = bound_method %.loc14_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c1f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.29: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c1f, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a6c] +// CHECK:STDOUT: %bound_method.loc14_24.1: = bound_method %.loc14_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.29 // CHECK:STDOUT: %addr.loc14_24.1: %ptr.dc3 = addr_of %.loc14_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14_24.1: init %empty_tuple.type = call %bound_method.loc14_24.1(%addr.loc14_24.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14_24.1: init %empty_tuple.type = call %bound_method.loc14_24.1(%addr.loc14_24.1) // CHECK:STDOUT: %facet_value.loc13_24.2: %type_where = facet_value constants.%C.c60, () [concrete = constants.%facet_value.14a] // CHECK:STDOUT: %.loc13_24.6: %type_where = converted constants.%C.c60, %facet_value.loc13_24.2 [concrete = constants.%facet_value.14a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_24.2: = bound_method %.loc13_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.062 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.30: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7] -// CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %.loc13_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.30 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_24.2: = bound_method %.loc13_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.30: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.636] +// CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %.loc13_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.30 // CHECK:STDOUT: %addr.loc13_24.2: %ptr.b5e = addr_of %.loc13_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_24.2: init %empty_tuple.type = call %bound_method.loc13_24.2(%addr.loc13_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_24.2: init %empty_tuple.type = call %bound_method.loc13_24.2(%addr.loc13_24.2) // CHECK:STDOUT: %facet_value.loc12_24.3: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.7: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.3 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.3: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.31: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.3: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.31 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12_24.3: = bound_method %.loc12_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.e91] +// CHECK:STDOUT: %bound_method.loc12_24.3: = bound_method %.loc12_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31 // CHECK:STDOUT: %addr.loc12_24.3: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.3: init %empty_tuple.type = call %bound_method.loc12_24.3(%addr.loc12_24.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12_24.3: init %empty_tuple.type = call %bound_method.loc12_24.3(%addr.loc12_24.3) // CHECK:STDOUT: %facet_value.loc11_24.4: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.8: %type_where = converted constants.%C.89d, %facet_value.loc11_24.4 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.4: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.32: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.4: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.32 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11_24.4: = bound_method %.loc11_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.32: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31a] +// CHECK:STDOUT: %bound_method.loc11_24.4: = bound_method %.loc11_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.32 // CHECK:STDOUT: %addr.loc11_24.4: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.4: init %empty_tuple.type = call %bound_method.loc11_24.4(%addr.loc11_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11_24.4: init %empty_tuple.type = call %bound_method.loc11_24.4(%addr.loc11_24.4) // CHECK:STDOUT: %facet_value.loc10_24.5: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.9: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.5 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.5: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.33: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.5: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.33 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_24.5: = bound_method %.loc10_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.33: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.714] +// CHECK:STDOUT: %bound_method.loc10_24.5: = bound_method %.loc10_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.33 // CHECK:STDOUT: %addr.loc10_24.5: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.5: init %empty_tuple.type = call %bound_method.loc10_24.5(%addr.loc10_24.5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_24.5: init %empty_tuple.type = call %bound_method.loc10_24.5(%addr.loc10_24.5) // CHECK:STDOUT: %facet_value.loc9_24.6: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.10: %type_where = converted constants.%C.681, %facet_value.loc9_24.6 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.6: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.34: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.6: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.34 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_24.6: = bound_method %.loc9_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.34: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd] +// CHECK:STDOUT: %bound_method.loc9_24.6: = bound_method %.loc9_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.34 // CHECK:STDOUT: %addr.loc9_24.6: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.6: init %empty_tuple.type = call %bound_method.loc9_24.6(%addr.loc9_24.6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_24.6: init %empty_tuple.type = call %bound_method.loc9_24.6(%addr.loc9_24.6) // CHECK:STDOUT: %facet_value.loc8_24.7: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.11: %type_where = converted constants.%C.674, %facet_value.loc8_24.7 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.7: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.35: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.7: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.35 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.7: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.35: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.7: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.35 // CHECK:STDOUT: %addr.loc8_24.7: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.7: init %empty_tuple.type = call %bound_method.loc8_24.7(%addr.loc8_24.7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.7: init %empty_tuple.type = call %bound_method.loc8_24.7(%addr.loc8_24.7) // CHECK:STDOUT: %facet_value.loc7_24.8: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.12: %type_where = converted constants.%C.b00, %facet_value.loc7_24.8 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.8: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.36: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.8: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.36 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.8: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.36: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.8: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.36 // CHECK:STDOUT: %addr.loc7_24.8: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.8: init %empty_tuple.type = call %bound_method.loc7_24.8(%addr.loc7_24.8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.8: init %empty_tuple.type = call %bound_method.loc7_24.8(%addr.loc7_24.8) // CHECK:STDOUT: return %.loc14_35.2 to %return // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc14: @@ -1516,60 +1516,60 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %Make.call: init %D = call %Make.ref() to %.loc6_15 // CHECK:STDOUT: %facet_value.loc14_24.2: %type_where = facet_value constants.%C.304, () [concrete = constants.%facet_value.488] // CHECK:STDOUT: %.loc14_24.6: %type_where = converted constants.%C.304, %facet_value.loc14_24.2 [concrete = constants.%facet_value.488] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc14_24.2: = bound_method %.loc14_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.28e -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.37: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.28e, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.8dc] -// CHECK:STDOUT: %bound_method.loc14_24.2: = bound_method %.loc14_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.37 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc14_24.2: = bound_method %.loc14_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c1f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.37: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.c1f, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.488) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a6c] +// CHECK:STDOUT: %bound_method.loc14_24.2: = bound_method %.loc14_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.37 // CHECK:STDOUT: %addr.loc14_24.2: %ptr.dc3 = addr_of %.loc14_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc14_24.2: init %empty_tuple.type = call %bound_method.loc14_24.2(%addr.loc14_24.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc14_24.2: init %empty_tuple.type = call %bound_method.loc14_24.2(%addr.loc14_24.2) // CHECK:STDOUT: %facet_value.loc13_24.3: %type_where = facet_value constants.%C.c60, () [concrete = constants.%facet_value.14a] // CHECK:STDOUT: %.loc13_24.7: %type_where = converted constants.%C.c60, %facet_value.loc13_24.3 [concrete = constants.%facet_value.14a] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc13_24.3: = bound_method %.loc13_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.062 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.38: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.062, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4a7] -// CHECK:STDOUT: %bound_method.loc13_24.3: = bound_method %.loc13_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.38 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc13_24.3: = bound_method %.loc13_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.38: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.57e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.14a) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.636] +// CHECK:STDOUT: %bound_method.loc13_24.3: = bound_method %.loc13_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.38 // CHECK:STDOUT: %addr.loc13_24.3: %ptr.b5e = addr_of %.loc13_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc13_24.3: init %empty_tuple.type = call %bound_method.loc13_24.3(%addr.loc13_24.3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc13_24.3: init %empty_tuple.type = call %bound_method.loc13_24.3(%addr.loc13_24.3) // CHECK:STDOUT: %facet_value.loc12_24.4: %type_where = facet_value constants.%C.f0a, () [concrete = constants.%facet_value.430] // CHECK:STDOUT: %.loc12_24.8: %type_where = converted constants.%C.f0a, %facet_value.loc12_24.4 [concrete = constants.%facet_value.430] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc12_24.4: = bound_method %.loc12_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b39 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.39: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b39, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.b9e] -// CHECK:STDOUT: %bound_method.loc12_24.4: = bound_method %.loc12_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.39 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc12_24.4: = bound_method %.loc12_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.39: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.42c, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.430) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.e91] +// CHECK:STDOUT: %bound_method.loc12_24.4: = bound_method %.loc12_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.39 // CHECK:STDOUT: %addr.loc12_24.4: %ptr.24c = addr_of %.loc12_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc12_24.4: init %empty_tuple.type = call %bound_method.loc12_24.4(%addr.loc12_24.4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc12_24.4: init %empty_tuple.type = call %bound_method.loc12_24.4(%addr.loc12_24.4) // CHECK:STDOUT: %facet_value.loc11_24.5: %type_where = facet_value constants.%C.89d, () [concrete = constants.%facet_value.b4c] // CHECK:STDOUT: %.loc11_24.9: %type_where = converted constants.%C.89d, %facet_value.loc11_24.5 [concrete = constants.%facet_value.b4c] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11_24.5: = bound_method %.loc11_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.40: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.b4d, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.4d6] -// CHECK:STDOUT: %bound_method.loc11_24.5: = bound_method %.loc11_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.40 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11_24.5: = bound_method %.loc11_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.40: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.87e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.b4c) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.31a] +// CHECK:STDOUT: %bound_method.loc11_24.5: = bound_method %.loc11_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.40 // CHECK:STDOUT: %addr.loc11_24.5: %ptr.c28b = addr_of %.loc11_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11_24.5: init %empty_tuple.type = call %bound_method.loc11_24.5(%addr.loc11_24.5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11_24.5: init %empty_tuple.type = call %bound_method.loc11_24.5(%addr.loc11_24.5) // CHECK:STDOUT: %facet_value.loc10_24.6: %type_where = facet_value constants.%C.7ac, () [concrete = constants.%facet_value.99b] // CHECK:STDOUT: %.loc10_24.10: %type_where = converted constants.%C.7ac, %facet_value.loc10_24.6 [concrete = constants.%facet_value.99b] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10_24.6: = bound_method %.loc10_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.423 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.41: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.423, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.060] -// CHECK:STDOUT: %bound_method.loc10_24.6: = bound_method %.loc10_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.41 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10_24.6: = bound_method %.loc10_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.41: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.b75, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.99b) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.714] +// CHECK:STDOUT: %bound_method.loc10_24.6: = bound_method %.loc10_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.41 // CHECK:STDOUT: %addr.loc10_24.6: %ptr.2b1 = addr_of %.loc10_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10_24.6: init %empty_tuple.type = call %bound_method.loc10_24.6(%addr.loc10_24.6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10_24.6: init %empty_tuple.type = call %bound_method.loc10_24.6(%addr.loc10_24.6) // CHECK:STDOUT: %facet_value.loc9_24.7: %type_where = facet_value constants.%C.681, () [concrete = constants.%facet_value.7fe] // CHECK:STDOUT: %.loc9_24.11: %type_where = converted constants.%C.681, %facet_value.loc9_24.7 [concrete = constants.%facet_value.7fe] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_24.7: = bound_method %.loc9_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.42: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.aa7, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.781] -// CHECK:STDOUT: %bound_method.loc9_24.7: = bound_method %.loc9_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.42 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_24.7: = bound_method %.loc9_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.42: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.603, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.7fe) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.4cd] +// CHECK:STDOUT: %bound_method.loc9_24.7: = bound_method %.loc9_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.42 // CHECK:STDOUT: %addr.loc9_24.7: %ptr.3bd = addr_of %.loc9_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_24.7: init %empty_tuple.type = call %bound_method.loc9_24.7(%addr.loc9_24.7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_24.7: init %empty_tuple.type = call %bound_method.loc9_24.7(%addr.loc9_24.7) // CHECK:STDOUT: %facet_value.loc8_24.8: %type_where = facet_value constants.%C.674, () [concrete = constants.%facet_value.4dd] // CHECK:STDOUT: %.loc8_24.12: %type_where = converted constants.%C.674, %facet_value.loc8_24.8 [concrete = constants.%facet_value.4dd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_24.8: = bound_method %.loc8_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.998 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.43: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.998, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.179] -// CHECK:STDOUT: %bound_method.loc8_24.8: = bound_method %.loc8_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.43 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_24.8: = bound_method %.loc8_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.43: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.461, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.4dd) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.71f] +// CHECK:STDOUT: %bound_method.loc8_24.8: = bound_method %.loc8_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.43 // CHECK:STDOUT: %addr.loc8_24.8: %ptr.625 = addr_of %.loc8_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_24.8: init %empty_tuple.type = call %bound_method.loc8_24.8(%addr.loc8_24.8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_24.8: init %empty_tuple.type = call %bound_method.loc8_24.8(%addr.loc8_24.8) // CHECK:STDOUT: %facet_value.loc7_24.9: %type_where = facet_value constants.%C.b00, () [concrete = constants.%facet_value.e56] // CHECK:STDOUT: %.loc7_24.13: %type_where = converted constants.%C.b00, %facet_value.loc7_24.9 [concrete = constants.%facet_value.e56] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7_24.9: = bound_method %.loc7_24.4, constants.%DestroyT.as_type.as.Destroy.impl.Op.050 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.44: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.050, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.5c2] -// CHECK:STDOUT: %bound_method.loc7_24.9: = bound_method %.loc7_24.4, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.44 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7_24.9: = bound_method %.loc7_24.4, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.44: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.6ee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.e56) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.b72] +// CHECK:STDOUT: %bound_method.loc7_24.9: = bound_method %.loc7_24.4, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.44 // CHECK:STDOUT: %addr.loc7_24.9: %ptr.697 = addr_of %.loc7_24.4 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7_24.9: init %empty_tuple.type = call %bound_method.loc7_24.9(%addr.loc7_24.9) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7_24.9: init %empty_tuple.type = call %bound_method.loc7_24.9(%addr.loc7_24.9) // CHECK:STDOUT: return %Make.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index ed3a20f2c1cd3..1bce231c4603d 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -75,10 +75,10 @@ fn G() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -196,11 +196,11 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc26_16: %i32 = bind_value %result // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc26_12.2: %type_where = converted constants.%i32, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %result.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc26_12.3: = bound_method %result.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %result.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc26_12.3: = bound_method %result.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.235 = addr_of %result.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_12.3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc26_12.3(%addr) // CHECK:STDOUT: return %.loc26_16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 3386748163efd..1f6c7dccb95f5 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -67,10 +67,10 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %i32, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.cad: %DestroyT.as_type.as.Destroy.impl.Op.type.cb3 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a57: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a12 = struct_value () [concrete] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] @@ -192,18 +192,18 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %.loc22: init %i32 = converted %int_0.loc22, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %facet_value.loc20: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc20_14.2: %type_where = converted constants.%i32, %facet_value.loc20 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc20_14.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc20: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc20_14.3: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc20: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_14.3(%addr.loc20) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc20: init %empty_tuple.type = call %bound_method.loc20_14.3(%addr.loc20) // CHECK:STDOUT: %facet_value.loc17: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc17_14.2: %type_where = converted constants.%i32, %facet_value.loc17 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc17: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc17_14.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc17: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc17: init %empty_tuple.type = call %bound_method.loc17_14.3(%addr.loc17) // CHECK:STDOUT: return %.loc22 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -234,11 +234,11 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %.loc27_18: %i32 = bind_value %v // CHECK:STDOUT: %facet_value.loc27_14.1: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_14.2: %type_where = converted constants.%i32, %facet_value.loc27_14.1 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27_14.1: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_14.3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc27_14.1: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc27_14.3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc27_14.1: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27_14.1: init %empty_tuple.type = call %bound_method.loc27_14.3(%addr.loc27_14.1) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27_14.1: init %empty_tuple.type = call %bound_method.loc27_14.3(%addr.loc27_14.1) // CHECK:STDOUT: return %.loc27_18 // CHECK:STDOUT: // CHECK:STDOUT: !if.else: @@ -263,18 +263,18 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %.loc30_16: %i32 = bind_value %w // CHECK:STDOUT: %facet_value.loc30: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc30_12.2: %type_where = converted constants.%i32, %facet_value.loc30 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %w.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc30_12.3: = bound_method %w.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc30: = bound_method %w.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc30_12.3: = bound_method %w.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc30: %ptr.235 = addr_of %w.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_12.3(%addr.loc30) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc30: init %empty_tuple.type = call %bound_method.loc30_12.3(%addr.loc30) // CHECK:STDOUT: %facet_value.loc27_14.2: %type_where = facet_value constants.%i32, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc27_14.3: %type_where = converted constants.%i32, %facet_value.loc27_14.2 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc27_14.2: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.cad -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.cad, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc27_14.4: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc27_14.2: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a57, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc27_14.4: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc27_14.2: %ptr.235 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc27_14.2: init %empty_tuple.type = call %bound_method.loc27_14.4(%addr.loc27_14.2) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc27_14.2: init %empty_tuple.type = call %bound_method.loc27_14.4(%addr.loc27_14.2) // CHECK:STDOUT: return %.loc30_16 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/literal_member_access.carbon b/toolchain/check/testdata/struct/literal_member_access.carbon index fcd6531360acb..3325b3c330988 100644 --- a/toolchain/check/testdata/struct/literal_member_access.carbon +++ b/toolchain/check/testdata/struct/literal_member_access.carbon @@ -51,9 +51,9 @@ fn F() -> i32 { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.x.y.z, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.8b9: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.321: %DestroyT.as_type.as.Destroy.impl.Op.type.8b9 = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.321, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3c8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.97f: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3c8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.97f, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -133,11 +133,11 @@ fn F() -> i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc18_38.2(%.loc18_38) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.x.y.z, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_26.9: %type_where = converted constants.%struct_type.x.y.z, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_26.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.321 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.321, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_26: = bound_method %.loc18_26.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc18_26.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.97f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.97f, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc18_26: = bound_method %.loc18_26.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.6eb = addr_of %.loc18_26.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_26(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_26(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/nested_struct_in_place.carbon b/toolchain/check/testdata/struct/nested_struct_in_place.carbon index 1ddbd02c6ee81..88b92e7a4f1d3 100644 --- a/toolchain/check/testdata/struct/nested_struct_in_place.carbon +++ b/toolchain/check/testdata/struct/nested_struct_in_place.carbon @@ -38,10 +38,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.a.b.2f9, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.bce: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.361: %DestroyT.as_type.as.Destroy.impl.Op.type.bce = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.973: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.14e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.973 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c95: type = ptr_type %struct_type.a.b.2f9 [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.361, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.14e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -121,11 +121,11 @@ fn G() { // CHECK:STDOUT: %v: ref %struct_type.a.b.2f9 = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.a.b.2f9, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc18_3.2: %type_where = converted constants.%struct_type.a.b.2f9, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.361 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.361, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.14e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.14e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.c95 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/tuple/element_access.carbon b/toolchain/check/testdata/tuple/element_access.carbon index 7ca9096e90813..46d063ad2bf9a 100644 --- a/toolchain/check/testdata/tuple/element_access.carbon +++ b/toolchain/check/testdata/tuple/element_access.carbon @@ -408,8 +408,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.f59, @Int.as.Copy.impl.Op(%int_32) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.a1c, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5c6: %DestroyT.as_type.as.Destroy.impl.Op.type.fb1 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3f8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.14d: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.3f8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.0b7: type = ptr_type %tuple.type.a1c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -434,11 +434,11 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc7_13.2(%.loc7_13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.a1c, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_12.3: %type_where = converted constants.%tuple.type.a1c, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.5c6 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc7_12.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.14d // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7_12: = bound_method %.loc7_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc7_12: = bound_method %.loc7_12.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.0b7 = addr_of %.loc7_12.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_12(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc7_12(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon index fbabb31956b2c..15143776deb61 100644 --- a/toolchain/check/testdata/tuple/in_place_tuple_init.carbon +++ b/toolchain/check/testdata/tuple/in_place_tuple_init.carbon @@ -63,8 +63,8 @@ fn H() { // CHECK:STDOUT: %ptr.261: type = ptr_type %tuple.type.d07 [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.d07, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c59: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.e4f: %DestroyT.as_type.as.Destroy.impl.Op.type.c59 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1e3: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.40e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.1e3 = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] @@ -113,11 +113,11 @@ fn H() { // CHECK:STDOUT: %F.call.loc9: init %tuple.type.d07 = call %F.ref.loc9() to %.loc5_8 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%tuple.type.d07, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.40e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.261 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return %F.call.loc9 to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -137,11 +137,11 @@ fn H() { // CHECK:STDOUT: %Int.as.Copy.impl.Op.call: init %i32 = call %bound_method.loc15_13.2(%.loc15_13) // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.d07, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc15_12.3: %type_where = converted constants.%tuple.type.d07, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc15_12.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.e4f +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc15_12.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.40e // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc15_12: = bound_method %.loc15_12.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc15_12: = bound_method %.loc15_12.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.261 = addr_of %.loc15_12.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_12(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_12(%addr) // CHECK:STDOUT: return %Int.as.Copy.impl.Op.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -160,8 +160,8 @@ fn H() { // CHECK:STDOUT: %pattern_type.d88: type = pattern_type %tuple.type.99b [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.207: %type_where = facet_value %tuple.type.99b, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.379: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.207) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a7: %DestroyT.as_type.as.Destroy.impl.Op.type.379 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a67: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.207) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.4b6: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a67 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8bc: type = ptr_type %tuple.type.99b [concrete] // CHECK:STDOUT: %tuple.type.3a3: type = tuple_type (type, %tuple.type.ff9, type) [concrete] // CHECK:STDOUT: %tuple.type.516: type = tuple_type (%i32, %tuple.type.189, %i32) [concrete] @@ -187,8 +187,8 @@ fn H() { // CHECK:STDOUT: %bound_method.8bd: = 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: %facet_value.edd: %type_where = facet_value %tuple.type.516, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.edd) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.12b: %DestroyT.as_type.as.Destroy.impl.Op.type.0ad = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.454: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.edd) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.903: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.454 = struct_value () [concrete] // CHECK:STDOUT: %ptr.12e: type = ptr_type %tuple.type.516 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -237,11 +237,11 @@ fn H() { // CHECK:STDOUT: %v: ref %tuple.type.99b = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.99b, () [concrete = constants.%facet_value.207] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%tuple.type.99b, %facet_value [concrete = constants.%facet_value.207] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.8a7 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.4b6 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8bc = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -296,11 +296,11 @@ fn H() { // CHECK:STDOUT: %v: ref %tuple.type.516 = bind_name v, %v.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.516, () [concrete = constants.%facet_value.edd] // CHECK:STDOUT: %.loc13_3.2: %type_where = converted constants.%tuple.type.516, %facet_value [concrete = constants.%facet_value.edd] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.12b +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.903 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method.loc13_3: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.12e = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_3(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/tuple/tuple_pattern.carbon b/toolchain/check/testdata/tuple/tuple_pattern.carbon index ba51cce49e41a..e5244b65fc6a4 100644 --- a/toolchain/check/testdata/tuple/tuple_pattern.carbon +++ b/toolchain/check/testdata/tuple/tuple_pattern.carbon @@ -111,8 +111,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %tuple: %tuple.type.b6b = tuple_value (%empty_struct, %empty_struct) [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.b6b, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5fa: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ab8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f21: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ab8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8fc: type = ptr_type %tuple.type.b6b [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -195,18 +195,18 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %d: ref %empty_struct_type = bind_name d, %tuple.elem1.loc8_3 // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.var.loc8, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %.var.loc8, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f21 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc8: = bound_method %.var.loc8, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc8: = bound_method %.var.loc8, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8: %ptr.8fc = addr_of %.var.loc8 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var.loc7, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var.loc7, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f21 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var.loc7, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var.loc7, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.8fc = addr_of %.var.loc7 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -222,8 +222,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %pattern_type.a96: type = pattern_type %empty_struct_type [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type.b6b, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.5fa: %DestroyT.as_type.as.Destroy.impl.Op.type.6bf = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ab8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.f21: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.ab8 = struct_value () [concrete] // CHECK:STDOUT: %ptr.8fc: type = ptr_type %tuple.type.b6b [concrete] // CHECK:STDOUT: %MakeTuple.type: type = fn_type @MakeTuple [concrete] // CHECK:STDOUT: %MakeTuple: %MakeTuple.type = struct_value () [concrete] @@ -293,18 +293,18 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %y: ref %empty_struct_type = bind_name y, %tuple.elem1.loc7_3 // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f21 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %bound_method.loc7: = bound_method %.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc7: %ptr.8fc = addr_of %.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: %facet_value.loc6: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc6_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value.loc6 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc6: = bound_method %tuple.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc6: = bound_method %tuple.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f21 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method.loc6: = bound_method %tuple.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %bound_method.loc6: = bound_method %tuple.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc6: %ptr.8fc = addr_of %tuple.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6(%addr.loc6) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6(%addr.loc6) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -364,11 +364,11 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %y: ref %empty_struct_type = bind_name y, %tuple.elem1.loc14_3 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc14_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f21 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8fc = addr_of %.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -399,11 +399,11 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: %y: ref %empty_struct_type = bind_name y, %tuple.elem1 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type.b6b, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc22_3.2: %type_where = converted constants.%tuple.type.b6b, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.5fa +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.f21 // CHECK:STDOUT: -// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.8fc = addr_of %.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/decl.carbon b/toolchain/check/testdata/var/decl.carbon index 1d6b9fd93b412..2bddfc306a044 100644 --- a/toolchain/check/testdata/var/decl.carbon +++ b/toolchain/check/testdata/var/decl.carbon @@ -28,10 +28,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -66,11 +66,11 @@ fn Main() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/decl_with_init.carbon b/toolchain/check/testdata/var/decl_with_init.carbon index 1c1596577b2a9..d16c1cf707629 100644 --- a/toolchain/check/testdata/var/decl_with_init.carbon +++ b/toolchain/check/testdata/var/decl_with_init.carbon @@ -29,10 +29,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,11 +71,11 @@ fn Main() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_duplicate_decl.carbon b/toolchain/check/testdata/var/fail_duplicate_decl.carbon index addcf7b71c8c0..9eab390756299 100644 --- a/toolchain/check/testdata/var/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/var/fail_duplicate_decl.carbon @@ -37,10 +37,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -93,18 +93,18 @@ fn Main() { // CHECK:STDOUT: %x.loc11: ref %empty_tuple.type = bind_name x, %x.var.loc11 // CHECK:STDOUT: %facet_value.loc11: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc11_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc11 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %x.var.loc11, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc11: = bound_method %x.var.loc11, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc11: = bound_method %x.var.loc11, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc11: = bound_method %x.var.loc11, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc11: %ptr.843 = addr_of %x.var.loc11 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc11: init %empty_tuple.type = call %bound_method.loc11(%addr.loc11) // CHECK:STDOUT: %facet_value.loc3: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc3 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc3: = bound_method %x.var.loc3, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc3: = bound_method %x.var.loc3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc3: = bound_method %x.var.loc3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc3: = bound_method %x.var.loc3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc3: %ptr.843 = addr_of %x.var.loc3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc3: init %empty_tuple.type = call %bound_method.loc3(%addr.loc3) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc3: init %empty_tuple.type = call %bound_method.loc3(%addr.loc3) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_init_with_self.carbon b/toolchain/check/testdata/var/fail_init_with_self.carbon index 76b016d6bdac5..b7433c0e043ee 100644 --- a/toolchain/check/testdata/var/fail_init_with_self.carbon +++ b/toolchain/check/testdata/var/fail_init_with_self.carbon @@ -32,10 +32,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -72,11 +72,11 @@ fn Main() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon index 2b32a01e3b7df..6297bc606fc22 100644 --- a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon +++ b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon @@ -34,10 +34,10 @@ var y: () = x; // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -84,11 +84,11 @@ var y: () = x; // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc3_3: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/global_lookup_in_scope.carbon b/toolchain/check/testdata/var/global_lookup_in_scope.carbon index de91dd7643990..998986a814e3c 100644 --- a/toolchain/check/testdata/var/global_lookup_in_scope.carbon +++ b/toolchain/check/testdata/var/global_lookup_in_scope.carbon @@ -34,10 +34,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %struct_type.v, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.c45: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.f49: %DestroyT.as_type.as.Destroy.impl.Op.type.c45 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.acb: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.aee: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.acb = struct_value () [concrete] // CHECK:STDOUT: %ptr.ef9: type = ptr_type %struct_type.v [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.f49, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.aee, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -93,11 +93,11 @@ fn Main() { // CHECK:STDOUT: %y: ref %struct_type.v = bind_name y, %y.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%struct_type.v, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_3.2: %type_where = converted constants.%struct_type.v, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.f49 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.f49, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.aee +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.aee, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.ef9 = addr_of %y.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/lookup.carbon b/toolchain/check/testdata/var/lookup.carbon index 751d80bc1a4ea..6e284318fb5cf 100644 --- a/toolchain/check/testdata/var/lookup.carbon +++ b/toolchain/check/testdata/var/lookup.carbon @@ -28,10 +28,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,11 +71,11 @@ fn Main() { // CHECK:STDOUT: %x.ref: ref %empty_tuple.type = name_ref x, %x // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc16_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/shadowing.carbon b/toolchain/check/testdata/var/shadowing.carbon index 4581d3625d3ed..71ede45b86218 100644 --- a/toolchain/check/testdata/var/shadowing.carbon +++ b/toolchain/check/testdata/var/shadowing.carbon @@ -41,10 +41,10 @@ fn Main() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -130,25 +130,25 @@ fn Main() { // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %facet_value.loc10: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc10_5.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc10 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var.loc10, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var.loc10, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc10: = bound_method %x.var.loc10, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc10: = bound_method %x.var.loc10, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc10: %ptr.843 = addr_of %x.var.loc10 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc10: init %empty_tuple.type = call %bound_method.loc10(%addr.loc10) // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %x.var.loc8, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8: = bound_method %x.var.loc8, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8: = bound_method %x.var.loc8, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8: = bound_method %x.var.loc8, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8: %ptr.843 = addr_of %x.var.loc8 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8) // CHECK:STDOUT: %facet_value.loc5: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc5 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc5: = bound_method %NS.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc5: = bound_method %NS.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc5: = bound_method %NS.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc5: = bound_method %NS.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc5: %ptr.843 = addr_of %NS.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc5: init %empty_tuple.type = call %bound_method.loc5(%addr.loc5) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc5: init %empty_tuple.type = call %bound_method.loc5(%addr.loc5) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/var_pattern.carbon b/toolchain/check/testdata/var/var_pattern.carbon index 699d32a2194e3..ae9176a0eb41a 100644 --- a/toolchain/check/testdata/var/var_pattern.carbon +++ b/toolchain/check/testdata/var/var_pattern.carbon @@ -156,10 +156,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -198,11 +198,11 @@ fn G() { // CHECK:STDOUT: %x: ref %empty_tuple.type = bind_name x, %x.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_7.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %x.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %x.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %x.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -219,10 +219,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -272,11 +272,11 @@ fn G() { // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %y.var // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_15.2: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %y.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %y.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %y.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -295,9 +295,9 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.042: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -353,11 +353,11 @@ fn G() { // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %tuple.elem1.loc5_3 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_3.2: %type_where = converted constants.%tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.709 = addr_of %.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -376,9 +376,9 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.042: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -434,11 +434,11 @@ fn G() { // CHECK:STDOUT: %y: ref %empty_tuple.type = bind_name y, %tuple.elem1.loc5_7 // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc5_7.2: %type_where = converted constants.%tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method: = bound_method %.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %addr: %ptr.709 = addr_of %.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -455,10 +455,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -530,18 +530,18 @@ fn G() { // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%.loc8_5, %.loc4_13.3) // CHECK:STDOUT: %facet_value.loc4: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc4_13.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc4 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc4: = bound_method %.loc4_13.3, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc4: = bound_method %.loc4_13.3, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc4: = bound_method %.loc4_13.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc4: = bound_method %.loc4_13.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc4: %ptr.843 = addr_of %.loc4_13.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc4: init %empty_tuple.type = call %bound_method.loc4(%addr.loc4) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc4: init %empty_tuple.type = call %bound_method.loc4(%addr.loc4) // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc7_3.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc7 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %v.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc7: = bound_method %v.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc7: = bound_method %v.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc7: = bound_method %v.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc7: %ptr.843 = addr_of %v.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -658,16 +658,16 @@ fn G() { // CHECK:STDOUT: %Destroy.Op: %Destroy.Op.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %DestroyT: %type_where = bind_symbolic_name DestroyT, 0 [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.190: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%DestroyT) [symbolic] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.8a0: %DestroyT.as_type.as.Destroy.impl.Op.type.190 = struct_value () [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.544: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d = struct_value () [symbolic] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %Destroy.impl_witness.8e6: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %Destroy.impl_witness.589: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %empty_tuple.type, (%Destroy.impl_witness.8e6) [concrete] -// CHECK:STDOUT: %.b16: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %empty_tuple.type, (%Destroy.impl_witness.589) [concrete] +// CHECK:STDOUT: %.8b9: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -684,8 +684,8 @@ fn G() { // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %Core.import_ref.f99: %Destroy.assoc_type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.import_ref.725: %Destroy.Op.type = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [concrete = constants.%Destroy.Op] -// CHECK:STDOUT: %Core.import_ref.d51: @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op.type (%DestroyT.as_type.as.Destroy.impl.Op.type.190) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.as_type.as.Destroy.impl.%DestroyT.as_type.as.Destroy.impl.Op (constants.%DestroyT.as_type.as.Destroy.impl.Op.8a0)] -// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.d51), @DestroyT.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.950: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.b5d) = import_ref Core//prelude/parts/destroy, loc{{\d+_\d+}}, loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.544)] +// CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Core.import_ref.950), @DestroyT.binding.as_type.as.Destroy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -715,12 +715,12 @@ fn G() { // CHECK:STDOUT: %Op.ref: %Destroy.assoc_type = name_ref Op, imports.%Core.import_ref.f99 [concrete = constants.%assoc0] // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.4: %type_where = converted constants.%empty_tuple.type, %facet_value [concrete = constants.%facet_value] -// CHECK:STDOUT: %impl.elem0: %.b16 = impl_witness_access constants.%Destroy.impl_witness.8e6, element0 [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.c00] +// CHECK:STDOUT: %impl.elem0: %.8b9 = impl_witness_access constants.%Destroy.impl_witness.589, element0 [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e] // CHECK:STDOUT: %bound_method.1: = bound_method %.3, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.2: = bound_method %.3, %specific_fn // CHECK:STDOUT: %addr: %ptr.843 = addr_of %.3 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.2(%addr) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.2(%addr) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -743,14 +743,14 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value.dcc: %type_where = facet_value %tuple.type.bcd, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.85e: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.50f: %DestroyT.as_type.as.Destroy.impl.Op.type.85e = struct_value () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.dcc) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.042: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.a69 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.886: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.dcc) [concrete] // CHECK:STDOUT: %facet_value.ff9: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.ff9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -822,18 +822,18 @@ fn G() { // CHECK:STDOUT: %z: ref %empty_tuple.type = bind_name z, %z.var // CHECK:STDOUT: %facet_value.loc9_15: %type_where = facet_value constants.%tuple.type.bcd, () [concrete = constants.%facet_value.dcc] // CHECK:STDOUT: %.loc9_15.3: %type_where = converted constants.%tuple.type.bcd, %facet_value.loc9_15 [concrete = constants.%facet_value.dcc] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_15: = bound_method %.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.50f -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.50f, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.c15] -// CHECK:STDOUT: %bound_method.loc9_15: = bound_method %.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_15: = bound_method %.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.042, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.dcc) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.886] +// CHECK:STDOUT: %bound_method.loc9_15: = bound_method %.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc9_15: %ptr.709 = addr_of %.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_15: init %empty_tuple.type = call %bound_method.loc9_15(%addr.loc9_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_15: init %empty_tuple.type = call %bound_method.loc9_15(%addr.loc9_15) // CHECK:STDOUT: %facet_value.loc9_27: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value.ff9] // CHECK:STDOUT: %.loc9_27.2: %type_where = converted constants.%empty_tuple.type, %facet_value.loc9_27 [concrete = constants.%facet_value.ff9] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc9_27: = bound_method %z.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn.a54] -// CHECK:STDOUT: %bound_method.loc9_27: = bound_method %z.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc9_27: = bound_method %z.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value.ff9) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1ba] +// CHECK:STDOUT: %bound_method.loc9_27: = bound_method %z.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc9_27: %ptr.843 = addr_of %z.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27(%addr.loc9_27) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc9_27: init %empty_tuple.type = call %bound_method.loc9_27(%addr.loc9_27) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -913,10 +913,10 @@ fn G() { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %empty_tuple.type, () [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0: type = fn_type @DestroyT.as_type.as.Destroy.impl.Op, @DestroyT.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.c00: %DestroyT.as_type.as.Destroy.impl.Op.type.4e0 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.93e: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.789 = struct_value () [concrete] // CHECK:STDOUT: %ptr.843: type = ptr_type %empty_tuple.type [concrete] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -992,25 +992,25 @@ fn G() { // CHECK:STDOUT: %z: %empty_tuple.type = bind_name z, %.loc8_48.3 // CHECK:STDOUT: %facet_value.loc8_48: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_48.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8_48 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_48: = bound_method %.loc8_48.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_48: = bound_method %.loc8_48.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.1 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_48: = bound_method %.loc8_48.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_48: = bound_method %.loc8_48.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.1 // CHECK:STDOUT: %addr.loc8_48: %ptr.843 = addr_of %.loc8_48.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_48: init %empty_tuple.type = call %bound_method.loc8_48(%addr.loc8_48) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_48: init %empty_tuple.type = call %bound_method.loc8_48(%addr.loc8_48) // CHECK:STDOUT: %facet_value.loc8_38: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_38.4: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8_38 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_38: = bound_method %.loc8_38.2, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_38: = bound_method %.loc8_38.2, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.2 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_38: = bound_method %.loc8_38.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_38: = bound_method %.loc8_38.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.2 // CHECK:STDOUT: %addr.loc8_38: %ptr.843 = addr_of %.loc8_38.2 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_38: init %empty_tuple.type = call %bound_method.loc8_38(%addr.loc8_38) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_38: init %empty_tuple.type = call %bound_method.loc8_38(%addr.loc8_38) // CHECK:STDOUT: %facet_value.loc8_15: %type_where = facet_value constants.%empty_tuple.type, () [concrete = constants.%facet_value] // CHECK:STDOUT: %.loc8_15: %type_where = converted constants.%empty_tuple.type, %facet_value.loc8_15 [concrete = constants.%facet_value] -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.bound.loc8_15: = bound_method %y.var, constants.%DestroyT.as_type.as.Destroy.impl.Op.c00 -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.as_type.as.Destroy.impl.Op.c00, @DestroyT.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.as_type.as.Destroy.impl.Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc8_15: = bound_method %y.var, %DestroyT.as_type.as.Destroy.impl.Op.specific_fn.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound.loc8_15: = bound_method %y.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3: = specific_function constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.93e, @DestroyT.binding.as_type.as.Destroy.impl.Op(constants.%facet_value) [concrete = constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn] +// CHECK:STDOUT: %bound_method.loc8_15: = bound_method %y.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.3 // CHECK:STDOUT: %addr.loc8_15: %ptr.843 = addr_of %y.var -// CHECK:STDOUT: %DestroyT.as_type.as.Destroy.impl.Op.call.loc8_15: init %empty_tuple.type = call %bound_method.loc8_15(%addr.loc8_15) +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call.loc8_15: init %empty_tuple.type = call %bound_method.loc8_15(%addr.loc8_15) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index d8669b1576eb2..c1cdae0c40895 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.364: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.364 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.364 [symbolic_self] // CHECK:STDOUT: %T: %I.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -210,8 +210,8 @@ fn F() { // 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.364] -// 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: %.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: %.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, type @@ -228,8 +228,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.364] // 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.as_type] -// CHECK:STDOUT: %.loc13_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_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: %.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 @@ -264,7 +264,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %.Self.364: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.364 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.364 [symbolic_self] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -282,8 +282,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.364] // CHECK:STDOUT: %J.ref: = name_ref J, [concrete = ] -// 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: %.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: %.loc14_12.2: type = where_expr %.Self.2 [concrete = ] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_impls %.loc14_18, @@ -314,13 +314,13 @@ fn F() { // CHECK:STDOUT: %EqualEqual.type: type = fn_type @EqualEqual [concrete] // CHECK:STDOUT: %EqualEqual: %EqualEqual.type = struct_value () [concrete] // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.729: type = facet_access_type %.Self.e7c [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.515: type = symbolic_binding_type .Self, %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J_where.type: type = facet_type <@J where .Self impls @I> [concrete] // CHECK:STDOUT: %V: %J_where.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %pattern_type.74f: type = pattern_type %J_where.type [concrete] // CHECK:STDOUT: %Impls.type: type = fn_type @Impls [concrete] // CHECK:STDOUT: %Impls: %Impls.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.as_type.8a2: type = facet_access_type %.Self.364 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.456: type = symbolic_binding_type .Self, %.Self.364 [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.364, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type.e04: type = facet_type <@I where .Self impls @J and TODO> [concrete] @@ -359,8 +359,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7c] // 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.as_type.729] -// CHECK:STDOUT: %.loc14_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.729] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.515] +// CHECK:STDOUT: %.loc14_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.515] // 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 @@ -377,12 +377,12 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc16_20: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.364] // 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.as_type.8a2] -// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref.loc16_20, %.Self.as_type.loc16_20 [symbolic_self = constants.%.Self.as_type.8a2] +// CHECK:STDOUT: %.Self.as_type.loc16_20: type = facet_access_type %.Self.ref.loc16_20 [symbolic_self = constants.%.Self.binding.as_type.456] +// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref.loc16_20, %.Self.as_type.loc16_20 [symbolic_self = constants.%.Self.binding.as_type.456] // CHECK:STDOUT: %.Self.ref.loc16_38: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.364] // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc16_38: type = facet_access_type %.Self.ref.loc16_38 [symbolic_self = constants.%.Self.as_type.8a2] -// CHECK:STDOUT: %.loc16_38: type = converted %.Self.ref.loc16_38, %.Self.as_type.loc16_38 [symbolic_self = constants.%.Self.as_type.8a2] +// CHECK:STDOUT: %.Self.as_type.loc16_38: type = facet_access_type %.Self.ref.loc16_38 [symbolic_self = constants.%.Self.binding.as_type.456] +// CHECK:STDOUT: %.loc16_38: type = converted %.Self.ref.loc16_38, %.Self.as_type.loc16_38 [symbolic_self = constants.%.Self.binding.as_type.456] // 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 () // CHECK:STDOUT: %.loc16_14.2: type = where_expr %.Self.2 [concrete = constants.%I_where.type.e04] { @@ -434,7 +434,7 @@ fn F() { // CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type @K [concrete] // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.%Associated [concrete] // CHECK:STDOUT: %.Self.a6f: %K.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.a6f [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.a6f [symbolic_self] // CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %.Self.a6f, @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] @@ -458,8 +458,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %K.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.a6f] // CHECK:STDOUT: %Associated.ref: %K.assoc_type = name_ref Associated, @Associated.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0 [symbolic_self = constants.%as_type] diff --git a/toolchain/check/testdata/where_expr/designator.carbon b/toolchain/check/testdata/where_expr/designator.carbon index 740d46820f669..24a8224b94d56 100644 --- a/toolchain/check/testdata/where_expr/designator.carbon +++ b/toolchain/check/testdata/where_expr/designator.carbon @@ -146,7 +146,7 @@ fn G(T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: %pattern_type.917: type = pattern_type %I_where.type [concrete] // CHECK:STDOUT: %PeriodSelf.type: type = fn_type @PeriodSelf [concrete] // CHECK:STDOUT: %PeriodSelf: %PeriodSelf.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.364 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.364 [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.364, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %U: %I_where.type = bind_symbolic_name U, 0 [symbolic] @@ -189,8 +189,8 @@ fn G(T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.364] // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc11_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc11_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // 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 () // CHECK:STDOUT: %.loc11_23.2: type = where_expr %.Self.2 [concrete = constants.%I_where.type] { diff --git a/toolchain/check/testdata/where_expr/dot_self_index.carbon b/toolchain/check/testdata/where_expr/dot_self_index.carbon index d7b68a5d03aa1..9e1bf27864622 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.3cf698.2: type = assoc_entity_type @Empty, @Empty(%T) [symbolic] // CHECK:STDOUT: %assoc0.3715ce.2: %Empty.assoc_type.3cf698.2 = assoc_entity element0, @Empty.%A [symbolic] // CHECK:STDOUT: %require_complete.059: = require_complete_type %Empty.type.752200.2 [symbolic] -// CHECK:STDOUT: %.Self.as_type.4e9: type = facet_access_type %.Self.ac8 [symbolic] +// CHECK:STDOUT: %.Self.binding.as_type.f0a: type = symbolic_binding_type .Self, %.Self.ac8 [symbolic] // CHECK:STDOUT: %Empty.lookup_impl_witness.e0b: = lookup_impl_witness %.Self.ac8, @Empty, @Empty(%T) [symbolic] // CHECK:STDOUT: %impl.elem0.c5c: type = impl_witness_access %Empty.lookup_impl_witness.e0b, element0 [symbolic] // CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] @@ -53,7 +53,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %.Self.aa8: %Empty.type.d26 = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %Empty.assoc_type.7c7: type = assoc_entity_type @Empty, @Empty(%i32) [concrete] // CHECK:STDOUT: %assoc0.758: %Empty.assoc_type.7c7 = assoc_entity element0, @Empty.%A [concrete] -// CHECK:STDOUT: %.Self.as_type.05b: type = facet_access_type %.Self.aa8 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type.c19: type = symbolic_binding_type .Self, %.Self.aa8 [symbolic_self] // CHECK:STDOUT: %Empty.lookup_impl_witness.4e5: = lookup_impl_witness %.Self.aa8, @Empty, @Empty(%i32) [symbolic_self] // CHECK:STDOUT: %impl.elem0.36f: type = impl_witness_access %Empty.lookup_impl_witness.4e5, element0 [symbolic_self] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] @@ -84,8 +84,8 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc21_26.1 (%Empty.type.752200.2) = name_ref .Self, %.Self.4 [symbolic = %.Self.1 (constants.%.Self.ac8)] // CHECK:STDOUT: %.loc21_34.1: @H.%Empty.assoc_type (%Empty.assoc_type.3cf698.2) = specific_constant @A.%assoc0, @Empty(constants.%T) [symbolic = %assoc0 (constants.%assoc0.3715ce.2)] // CHECK:STDOUT: %A.ref: @H.%Empty.assoc_type (%Empty.assoc_type.3cf698.2) = name_ref A, %.loc21_34.1 [symbolic = %assoc0 (constants.%assoc0.3715ce.2)] -// CHECK:STDOUT: %.Self.as_type.loc21_34.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc21_34.1 (constants.%.Self.as_type.4e9)] -// CHECK:STDOUT: %.loc21_34.2: type = converted %.Self.ref, %.Self.as_type.loc21_34.2 [symbolic = %.Self.as_type.loc21_34.1 (constants.%.Self.as_type.4e9)] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.f0a)] +// CHECK:STDOUT: %.loc21_34.2: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.f0a)] // CHECK:STDOUT: %impl.elem0.loc21_34.2: type = impl_witness_access constants.%Empty.lookup_impl_witness.e0b, element0 [symbolic = %impl.elem0.loc21_34.1 (constants.%impl.elem0.c5c)] // CHECK:STDOUT: %T.ref.loc21_39: type = name_ref T, %T.loc21_6.2 [symbolic = %T.loc21_6.1 (constants.%T)] // CHECK:STDOUT: %ptr.loc21_40.2: type = ptr_type %T.ref.loc21_39 [symbolic = %ptr.loc21_40.1 (constants.%ptr.79f)] @@ -107,7 +107,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %require_complete.loc21_34: = require_complete_type %Empty.type.loc21_26.1 [symbolic = %require_complete.loc21_34 (constants.%require_complete.059)] // CHECK:STDOUT: %Empty.assoc_type: type = assoc_entity_type @Empty, @Empty(%T.loc21_6.1) [symbolic = %Empty.assoc_type (constants.%Empty.assoc_type.3cf698.2)] // CHECK:STDOUT: %assoc0: @H.%Empty.assoc_type (%Empty.assoc_type.3cf698.2) = assoc_entity element0, @Empty.%A [symbolic = %assoc0 (constants.%assoc0.3715ce.2)] -// CHECK:STDOUT: %.Self.as_type.loc21_34.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc21_34.1 (constants.%.Self.as_type.4e9)] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.f0a)] // CHECK:STDOUT: %Empty.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Empty, @Empty(%T.loc21_6.1) [symbolic = %Empty.lookup_impl_witness (constants.%Empty.lookup_impl_witness.e0b)] // CHECK:STDOUT: %impl.elem0.loc21_34.1: type = impl_witness_access %Empty.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_34.1 (constants.%impl.elem0.c5c)] // CHECK:STDOUT: %ptr.loc21_40.1: type = ptr_type %T.loc21_6.1 [symbolic = %ptr.loc21_40.1 (constants.%ptr.79f)] @@ -131,7 +131,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %require_complete.loc21_34 => constants.%require_complete.059 // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.3cf698.2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.3715ce.2 -// CHECK:STDOUT: %.Self.as_type.loc21_34.1 => constants.%.Self.as_type.4e9 +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.f0a // CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.e0b // CHECK:STDOUT: %impl.elem0.loc21_34.1 => constants.%impl.elem0.c5c // CHECK:STDOUT: %ptr.loc21_40.1 => constants.%ptr.79f @@ -147,7 +147,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %require_complete.loc21_34 => constants.%complete_type.5db // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.7c7 // CHECK:STDOUT: %assoc0 => constants.%assoc0.758 -// CHECK:STDOUT: %.Self.as_type.loc21_34.1 => constants.%.Self.as_type.05b +// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.c19 // CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.4e5 // CHECK:STDOUT: %impl.elem0.loc21_34.1 => constants.%impl.elem0.36f // CHECK:STDOUT: %ptr.loc21_40.1 => constants.%ptr.235 diff --git a/toolchain/check/testdata/where_expr/equal_rewrite.carbon b/toolchain/check/testdata/where_expr/equal_rewrite.carbon index 951a0a1efe46b..ae9799d9451b0 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -226,7 +226,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.%P [concrete] // CHECK:STDOUT: %.Self.89b: %N.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.89b [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.89b [symbolic_self] // CHECK:STDOUT: %N.lookup_impl_witness: = lookup_impl_witness %.Self.89b, @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] @@ -250,8 +250,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %N.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.89b] // CHECK:STDOUT: %P.ref: %N.assoc_type = name_ref P, @P.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc9_28.2: type = converted %.loc9_28.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -282,7 +282,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, @A.%B [concrete] // CHECK:STDOUT: %assoc1: %A.assoc_type = assoc_entity element1, @A.%C [concrete] // CHECK:STDOUT: %.Self.56d: %A.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.56d [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.56d [symbolic_self] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.56d, @A [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] @@ -310,8 +310,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc10_31: %A.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.56d] // CHECK:STDOUT: %B.ref: %A.assoc_type = name_ref B, @B.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %impl.elem0: type = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %Bool.call: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc10_36.1: type = value_of_initializer %Bool.call [concrete = bool] @@ -323,8 +323,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc10_48: %A.type = name_ref .Self, %.Self.3 [symbolic_self = constants.%.Self.56d] // CHECK:STDOUT: %C.ref: %A.assoc_type = name_ref C, @C.%assoc1 [concrete = constants.%assoc1] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc10_54.2: type = converted %.loc10_54.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -354,7 +354,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.%F [concrete] // CHECK:STDOUT: %.Self.ba7: %E.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ba7 [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.ba7 [symbolic_self] // CHECK:STDOUT: %E.lookup_impl_witness: = lookup_impl_witness %.Self.ba7, @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] @@ -384,8 +384,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %E.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.ba7] // CHECK:STDOUT: %F.ref: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc9_27: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc9_27: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%E.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -405,15 +405,15 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc11_32: %E.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.ba7] // CHECK:STDOUT: %F.ref.loc11_32: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %impl.elem0.loc11_32: type = impl_witness_access constants.%E.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_32.loc11_37: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc11_37: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %.Self.ref.loc11_45: %E.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.ba7] // CHECK:STDOUT: %F.ref.loc11_45: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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] // CHECK:STDOUT: %int_32.loc11_50: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] @@ -486,7 +486,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.%K [concrete] // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, @J.%L [concrete] // CHECK:STDOUT: %.Self.e7c: %J.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7c [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.e7c [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %.Self.e7c, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] @@ -516,15 +516,15 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc10_29: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc10_29: type = facet_access_type %.Self.ref.loc10_29 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc10_29: type = converted %.Self.ref.loc10_29, %.Self.as_type.loc10_29 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_29: type = facet_access_type %.Self.ref.loc10_29 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc10_29: type = converted %.Self.ref.loc10_29, %.Self.as_type.loc10_29 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_35.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_35.2: type = converted %.loc10_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.Self.ref.loc10_41: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %.Self.as_type.loc10_41: type = facet_access_type %.Self.ref.loc10_41 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc10_41: type = converted %.Self.ref.loc10_41, %.Self.as_type.loc10_41 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_41: type = facet_access_type %.Self.ref.loc10_41 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc10_41: type = converted %.Self.ref.loc10_41, %.Self.as_type.loc10_41 [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%J.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %Bool.call: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc10_46.1: type = value_of_initializer %Bool.call [concrete = bool] @@ -546,16 +546,16 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc12_25: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] -// 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: %.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: %impl.elem1: type = impl_witness_access constants.%J.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %Bool.call: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc12_30.1: type = value_of_initializer %Bool.call [concrete = bool] // CHECK:STDOUT: %.loc12_30.2: type = converted %Bool.call, %.loc12_30.1 [concrete = bool] // CHECK:STDOUT: %.Self.ref.loc12_39: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7c] // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] -// 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: %.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: %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 () // CHECK:STDOUT: %.loc12_45.2: type = converted %.loc12_45.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] diff --git a/toolchain/check/testdata/where_expr/non_generic.carbon b/toolchain/check/testdata/where_expr/non_generic.carbon index 6e470316e6e49..1c4d633abb698 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(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.%T [concrete] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.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] @@ -49,8 +49,8 @@ fn NotGenericF(U: I where .T == i32) {} // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc17_27: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.loc17_27: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] diff --git a/toolchain/check/type.cpp b/toolchain/check/type.cpp index 00184cf2ab032..fee430f4ce12e 100644 --- a/toolchain/check/type.cpp +++ b/toolchain/check/type.cpp @@ -9,6 +9,7 @@ #include "toolchain/check/type_completion.h" #include "toolchain/sem_ir/facet_type_info.h" #include "toolchain/sem_ir/ids.h" +#include "toolchain/sem_ir/typed_insts.h" namespace Carbon::Check { @@ -240,14 +241,6 @@ auto GetUnboundElementType(Context& context, SemIR::TypeInstId class_type_id, auto GetCanonicalFacetOrTypeValue(Context& context, SemIR::InstId inst_id) -> SemIR::InstId { - if (inst_id == SemIR::ErrorInst::InstId) { - return inst_id; - } - - CARBON_CHECK( - context.types().IsFacetType(context.insts().Get(inst_id).type_id()), - "{0}", context.insts().Get(inst_id).type_id()); - auto const_inst_id = context.constant_values().GetConstantInstId(inst_id); if (auto access = @@ -255,6 +248,12 @@ 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/lower/testdata/array/iterate.carbon b/toolchain/lower/testdata/array/iterate.carbon index c2613bae56870..34e6a08c9d806 100644 --- a/toolchain/lower/testdata/array/iterate.carbon +++ b/toolchain/lower/testdata/array/iterate.carbon @@ -39,14 +39,14 @@ fn F() { // 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: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %.loc16_43.3.temp, ptr align 4 @array.loc16_43.22, i64 24, i1 false), !dbg !7 -// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.1548f3c8b30c3f7d:Iterate.Core.c71fd8c166af9f17"(ptr %.loc16_43.3.temp), !dbg !8 +// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.25e6cb2a64776520:Iterate.Core.c71fd8c166af9f17"(ptr %.loc16_43.3.temp), !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.3.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.1548f3c8b30c3f7d:Iterate.Core.c71fd8c166af9f17"(ptr %.loc17_19.3.temp, ptr %.loc16_43.3.temp, ptr %var), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.25e6cb2a64776520:Iterate.Core.c71fd8c166af9f17"(ptr %.loc17_19.3.temp, ptr %.loc16_43.3.temp, ptr %var), !dbg !8 // CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.de631560529e9861(ptr %.loc17_19.3.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: @@ -65,11 +65,11 @@ fn F() { // CHECK:STDOUT: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.1548f3c8b30c3f7d:Iterate.Core.c71fd8c166af9f17"(ptr %self) !dbg !12 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.25e6cb2a64776520:Iterate.Core.c71fd8c166af9f17"(ptr %self) !dbg !12 { // CHECK:STDOUT: ret i32 0, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_CNext.1548f3c8b30c3f7d:Iterate.Core.c71fd8c166af9f17"(ptr sret({ i1, i32 }) %return, ptr %self, ptr %cursor) !dbg !15 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.25e6cb2a64776520:Iterate.Core.c71fd8c166af9f17"(ptr sret({ i1, i32 }) %return, ptr %self, ptr %cursor) !dbg !15 { // CHECK:STDOUT: %1 = load i32, ptr %cursor, align 4, !dbg !16 // CHECK:STDOUT: %2 = icmp slt i32 %1, 6, !dbg !16 // CHECK:STDOUT: br i1 %2, label %3, label %7, !dbg !17 @@ -102,7 +102,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) !dbg !32 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.c0104337fd2f4b7f"(ptr %self, i32 1), !dbg !34 +// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.406b182375ada471"(ptr %self, i32 1), !dbg !34 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -120,15 +120,15 @@ fn F() { // CHECK:STDOUT: ret void, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.c0104337fd2f4b7f"(ptr %self, i32 %other) !dbg !42 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.bf1c9f3dcfbe0715:ImplicitAs.Core.b502b6d26692ae95"(i32 %other), !dbg !43 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.406b182375ada471"(ptr %self, i32 %other) !dbg !42 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.549023863aee3dc2:ImplicitAs.Core.b502b6d26692ae95"(i32 %other), !dbg !43 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !44 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !44 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !44 // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.bf1c9f3dcfbe0715:ImplicitAs.Core.b502b6d26692ae95"(i32 %self) !dbg !45 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.549023863aee3dc2:ImplicitAs.Core.b502b6d26692ae95"(i32 %self) !dbg !45 { // CHECK:STDOUT: ret i32 %self, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -153,10 +153,10 @@ fn F() { // CHECK:STDOUT: !9 = !DILocation(line: 18, column: 5, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 17, column: 3, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.1548f3c8b30c3f7d:Iterate.Core.c71fd8c166af9f17", scope: null, file: !13, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.25e6cb2a64776520:Iterate.Core.c71fd8c166af9f17", scope: null, file: !13, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !13 = !DIFile(filename: "{{.*}}/prelude/iterate.carbon", directory: "") // CHECK:STDOUT: !14 = !DILocation(line: 23, column: 39, scope: !12) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.1548f3c8b30c3f7d:Iterate.Core.c71fd8c166af9f17", scope: null, file: !13, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.25e6cb2a64776520:Iterate.Core.c71fd8c166af9f17", scope: null, file: !13, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !16 = !DILocation(line: 25, column: 9, scope: !15) // CHECK:STDOUT: !17 = !DILocation(line: 25, column: 8, scope: !15) // CHECK:STDOUT: !18 = !DILocation(line: 26, column: 7, scope: !15) @@ -183,9 +183,9 @@ fn F() { // CHECK:STDOUT: !39 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.de631560529e9861", scope: null, file: !26, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !40 = !DILocation(line: 22, column: 5, scope: !39) // CHECK:STDOUT: !41 = !DILocation(line: 23, column: 5, scope: !39) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.c0104337fd2f4b7f", scope: null, file: !33, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.406b182375ada471", scope: null, file: !33, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !43 = !DILocation(line: 4294967295, scope: !42) // CHECK:STDOUT: !44 = !DILocation(line: 275, column: 3, scope: !42) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.bf1c9f3dcfbe0715:ImplicitAs.Core.b502b6d26692ae95", scope: null, file: !46, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.549023863aee3dc2:ImplicitAs.Core.b502b6d26692ae95", scope: null, file: !46, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !46 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") // CHECK:STDOUT: !47 = !DILocation(line: 24, column: 38, scope: !45) diff --git a/toolchain/lower/testdata/class/generic.carbon b/toolchain/lower/testdata/class/generic.carbon index 17e7751e1a59c..cc6bb57f7dbfa 100644 --- a/toolchain/lower/testdata/class/generic.carbon +++ b/toolchain/lower/testdata/class/generic.carbon @@ -172,7 +172,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CTuples.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return) !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.d9506acff356e5d2(ptr %return, ptr @tuple.loc22_28.6, ptr @tuple.loc22_28.6), !dbg !13 +// CHECK:STDOUT: call void @_CMake.Main.54ec9394d5df5464(ptr %return, ptr @tuple.loc22_28.6, ptr @tuple.loc22_28.6), !dbg !13 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -192,16 +192,16 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.d9506acff356e5d2(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) !dbg !21 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.54ec9394d5df5464(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) !dbg !21 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !22 -// CHECK:STDOUT: call void @"_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9"(ptr %.loc10_25.2.x, ptr %x), !dbg !23 +// CHECK:STDOUT: call void @"_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9"(ptr %.loc10_25.2.x, ptr %x), !dbg !23 // CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !22 -// CHECK:STDOUT: call void @"_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9"(ptr %.loc10_25.4.y, ptr %y), !dbg !24 +// CHECK:STDOUT: call void @"_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9"(ptr %.loc10_25.4.y, ptr %y), !dbg !24 // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9"(ptr sret({ i32, i32 }) %return, ptr %self) !dbg !26 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9"(ptr sret({ i32, i32 }) %return, ptr %self) !dbg !26 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !28 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !28 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !29 @@ -214,7 +214,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9", { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} // CHECK:STDOUT: !llvm.dbg.cu = !{!2} @@ -240,12 +240,12 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !18 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.cf13cead63317d44", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !19 = !DILocation(line: 10, column: 10, scope: !18) // CHECK:STDOUT: !20 = !DILocation(line: 10, column: 3, scope: !18) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.d9506acff356e5d2", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.54ec9394d5df5464", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !22 = !DILocation(line: 10, column: 10, scope: !21) // CHECK:STDOUT: !23 = !DILocation(line: 10, column: 16, scope: !21) // CHECK:STDOUT: !24 = !DILocation(line: 10, column: 24, scope: !21) // CHECK:STDOUT: !25 = !DILocation(line: 10, column: 3, scope: !21) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9", scope: null, file: !27, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9", scope: null, file: !27, line: 48, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !27 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") // CHECK:STDOUT: !28 = !DILocation(line: 49, column: 13, scope: !26) // CHECK:STDOUT: !29 = !DILocation(line: 49, column: 12, scope: !26) @@ -256,7 +256,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: // CHECK:STDOUT: @C.val.bc7.loc16_3.1 = internal constant { i1, i32 } { i1 true, i32 0 } // CHECK:STDOUT: @C.val.f52.loc26_3.1 = internal constant { i1, {} } { i1 true, {} zeroinitializer } -// CHECK:STDOUT: @C.val.e10.loc31_3.1 = internal constant { i1, { i32, i32, i32 } } { i1 true, { i32, i32, i32 } { i32 1, i32 2, i32 3 } } +// CHECK:STDOUT: @C.val.f32.loc31_3.1 = internal constant { i1, { i32, i32, i32 } } { i1 true, { i32, i32, i32 } { i32 1, i32 2, i32 3 } } // CHECK:STDOUT: // CHECK:STDOUT: define i1 @_CAccessBool.Main() !dbg !4 { // CHECK:STDOUT: entry: @@ -300,8 +300,8 @@ 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 !24 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 1, !dbg !24 // CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 2, !dbg !24 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.e10.loc31_3.1, i64 16, i1 false), !dbg !22 -// CHECK:STDOUT: call void @_CGetT.C.Main.d11cadb9c9049708(ptr %return, ptr %c.var), !dbg !25 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.f32.loc31_3.1, i64 16, i1 false), !dbg !22 +// CHECK:STDOUT: call void @_CGetT.C.Main.7a4734f1d45ccfe4(ptr %return, ptr %c.var), !dbg !25 // CHECK:STDOUT: ret void, !dbg !26 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -332,14 +332,14 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.d11cadb9c9049708(ptr sret({ i32, i32, i32 }) %return, ptr %self) !dbg !36 { +// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.7a4734f1d45ccfe4(ptr sret({ i32, i32, i32 }) %return, ptr %self) !dbg !36 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %self, i32 0, i32 1, !dbg !37 -// CHECK:STDOUT: call void @"_COp.3f62beca1745278c:Copy.Core.03f4bad6da36de16"(ptr %return, ptr %.loc9_16.1.w), !dbg !37 +// CHECK:STDOUT: call void @"_COp.95e85d56bfcba7ff:Copy.Core.03f4bad6da36de16"(ptr %return, ptr %.loc9_16.1.w), !dbg !37 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_COp.3f62beca1745278c:Copy.Core.03f4bad6da36de16"(ptr sret({ i32, i32, i32 }) %return, ptr %self) !dbg !39 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.95e85d56bfcba7ff:Copy.Core.03f4bad6da36de16"(ptr sret({ i32, i32, i32 }) %return, ptr %self) !dbg !39 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 0, !dbg !41 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !41 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !42 @@ -401,10 +401,10 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !33 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.cf13cead63317d44", scope: null, file: !3, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !34 = !DILocation(line: 9, column: 12, scope: !33) // CHECK:STDOUT: !35 = !DILocation(line: 9, column: 5, scope: !33) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.d11cadb9c9049708", scope: null, file: !3, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.7a4734f1d45ccfe4", scope: null, file: !3, line: 8, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !37 = !DILocation(line: 9, column: 12, scope: !36) // CHECK:STDOUT: !38 = !DILocation(line: 9, column: 5, scope: !36) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.3f62beca1745278c:Copy.Core.03f4bad6da36de16", scope: null, file: !40, line: 54, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.95e85d56bfcba7ff:Copy.Core.03f4bad6da36de16", scope: null, file: !40, line: 54, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !40 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") // CHECK:STDOUT: !41 = !DILocation(line: 55, column: 13, scope: !39) // CHECK:STDOUT: !42 = !DILocation(line: 55, column: 12, scope: !39) diff --git a/toolchain/lower/testdata/class/virtual.carbon b/toolchain/lower/testdata/class/virtual.carbon index 13dd395b319a7..1dfb8cd8f4ea0 100644 --- a/toolchain/lower/testdata/class/virtual.carbon +++ b/toolchain/lower/testdata/class/virtual.carbon @@ -467,10 +467,10 @@ fn Make() { // CHECK:STDOUT: ; ModuleID = 'generic_use.carbon' // CHECK:STDOUT: source_filename = "generic_use.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @"_CBase.Main.$vtable.c6982b8c0374fffe" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.c6982b8c0374fffe to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.c6982b8c0374fffe" to i64)) to i32)] -// CHECK:STDOUT: @"_CBase.Main.$vtable.687c55d709ee2de2" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.687c55d709ee2de2 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.687c55d709ee2de2" to i64)) to i32)] -// CHECK:STDOUT: @Base.val.367.loc16_3.1 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.c6982b8c0374fffe" } -// CHECK:STDOUT: @Base.val.196.loc17_3.1 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.687c55d709ee2de2" } +// CHECK:STDOUT: @"_CBase.Main.$vtable.d284537f27c14cc2" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.d284537f27c14cc2 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.d284537f27c14cc2" to i64)) to i32)] +// CHECK:STDOUT: @"_CBase.Main.$vtable.cbe42065c1be15c8" = unnamed_addr constant [1 x i32] [i32 trunc (i64 sub (i64 ptrtoint (ptr @_CF.Base.Main.cbe42065c1be15c8 to i64), i64 ptrtoint (ptr @"_CBase.Main.$vtable.cbe42065c1be15c8" to i64)) to i32)] +// CHECK:STDOUT: @Base.val.7d8.loc16_3.1 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.d284537f27c14cc2" } +// CHECK:STDOUT: @Base.val.41b.loc17_3.1 = internal constant { ptr } { ptr @"_CBase.Main.$vtable.cbe42065c1be15c8" } // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF.Main() !dbg !4 { // CHECK:STDOUT: entry: @@ -478,21 +478,21 @@ fn Make() { // CHECK:STDOUT: %t2.var = alloca { ptr }, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %t1.var), !dbg !7 // CHECK:STDOUT: %.loc16_23.2.vptr = getelementptr inbounds nuw { ptr }, ptr %t1.var, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %t1.var, ptr align 8 @Base.val.367.loc16_3.1, i64 8, i1 false), !dbg !7 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %t1.var, ptr align 8 @Base.val.7d8.loc16_3.1, i64 8, i1 false), !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %t2.var), !dbg !8 // CHECK:STDOUT: %.loc17_23.2.vptr = getelementptr inbounds nuw { ptr }, ptr %t2.var, i32 0, i32 0, !dbg !10 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %t2.var, ptr align 8 @Base.val.196.loc17_3.1, i64 8, i1 false), !dbg !8 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 8 %t2.var, ptr align 8 @Base.val.41b.loc17_3.1, i64 8, i1 false), !dbg !8 // CHECK:STDOUT: ret void, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.c6982b8c0374fffe(ptr %self) !dbg !12 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.d284537f27c14cc2(ptr %self) !dbg !12 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %v.var = alloca {}, align 8, !dbg !13 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !13 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.687c55d709ee2de2(ptr %self) !dbg !15 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Base.Main.cbe42065c1be15c8(ptr %self) !dbg !15 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %v.var = alloca { {} }, align 8, !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !16 @@ -527,10 +527,10 @@ fn Make() { // CHECK:STDOUT: !9 = !DILocation(line: 16, column: 22, scope: !4) // CHECK:STDOUT: !10 = !DILocation(line: 17, column: 22, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 15, column: 1, scope: !4) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.c6982b8c0374fffe", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.d284537f27c14cc2", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !13 = !DILocation(line: 6, column: 5, scope: !12) // CHECK:STDOUT: !14 = !DILocation(line: 5, column: 3, scope: !12) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.687c55d709ee2de2", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "F", linkageName: "_CF.Base.Main.cbe42065c1be15c8", scope: null, file: !3, line: 5, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !16 = !DILocation(line: 6, column: 5, scope: !15) // CHECK:STDOUT: !17 = !DILocation(line: 5, column: 3, scope: !15) // CHECK:STDOUT: ; ModuleID = 'generic_base.carbon' diff --git a/toolchain/lower/testdata/for/bindings.carbon b/toolchain/lower/testdata/for/bindings.carbon index 2979f10060e0c..2cf5d42549a83 100644 --- a/toolchain/lower/testdata/for/bindings.carbon +++ b/toolchain/lower/testdata/for/bindings.carbon @@ -47,20 +47,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.1, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.Main:Iterate.Core.d9506acff356e5d2"(ptr %r.var), !dbg !8 +// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.Main:Iterate.Core.54ec9394d5df5464"(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.Main:Iterate.Core.d9506acff356e5d2"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.d9506acff356e5d2(ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.EmptyRange.Main:Iterate.Core.54ec9394d5df5464"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.54ec9394d5df5464(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.d9506acff356e5d2(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @_CGet.Optional.Core.54ec9394d5df5464(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 @@ -79,37 +79,37 @@ fn For() { // CHECK:STDOUT: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #1 // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.Main:Iterate.Core.d9506acff356e5d2"(ptr %self) !dbg !13 { +// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.Main:Iterate.Core.54ec9394d5df5464"(ptr %self) !dbg !13 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.Main:Iterate.Core.d9506acff356e5d2"(ptr sret({ i1, { i32, i32 } }) %return, ptr %self, ptr %cursor) !dbg !15 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.Main:Iterate.Core.54ec9394d5df5464"(ptr sret({ i1, { i32, i32 } }) %return, ptr %self, ptr %cursor) !dbg !15 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CNone.Optional.Core.d9506acff356e5d2(ptr %return), !dbg !16 +// CHECK:STDOUT: call void @_CNone.Optional.Core.54ec9394d5df5464(ptr %return), !dbg !16 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.d9506acff356e5d2(ptr %self) !dbg !18 { +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.54ec9394d5df5464(ptr %self) !dbg !18 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { i1, { i32, i32 } }, ptr %self, i32 0, i32 0, !dbg !20 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !20 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !20 // CHECK:STDOUT: ret i1 %2, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.d9506acff356e5d2(ptr sret({ i32, i32 }) %return, ptr %self) !dbg !22 { +// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.54ec9394d5df5464(ptr sret({ i32, i32 }) %return, ptr %self) !dbg !22 { // CHECK:STDOUT: %value = getelementptr inbounds nuw { i1, { i32, i32 } }, ptr %self, i32 0, i32 1, !dbg !23 -// CHECK:STDOUT: call void @"_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9"(ptr %return, ptr %value), !dbg !23 +// CHECK:STDOUT: call void @"_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9"(ptr %return, ptr %value), !dbg !23 // CHECK:STDOUT: ret void, !dbg !24 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.d9506acff356e5d2(ptr sret({ i1, { i32, i32 } }) %return) !dbg !25 { +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.54ec9394d5df5464(ptr sret({ i1, { i32, i32 } }) %return) !dbg !25 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw { i1, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !26 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !26 // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9"(ptr sret({ i32, i32 }) %return, ptr %self) !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9"(ptr sret({ i32, i32 }) %return, ptr %self) !dbg !28 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !30 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !30 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !31 @@ -143,22 +143,22 @@ fn For() { // CHECK:STDOUT: !10 = !DILocation(line: 30, column: 5, scope: !4) // CHECK:STDOUT: !11 = !DILocation(line: 29, column: 3, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 26, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.Main:Iterate.Core.d9506acff356e5d2", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.Main:Iterate.Core.54ec9394d5df5464", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !14 = !DILocation(line: 16, column: 7, scope: !13) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.Main:Iterate.Core.d9506acff356e5d2", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.Main:Iterate.Core.54ec9394d5df5464", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !16 = !DILocation(line: 19, column: 14, scope: !15) // CHECK:STDOUT: !17 = !DILocation(line: 19, column: 7, scope: !15) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.d9506acff356e5d2", scope: null, file: !19, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.54ec9394d5df5464", scope: null, file: !19, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !20 = !DILocation(line: 30, column: 46, scope: !18) // CHECK:STDOUT: !21 = !DILocation(line: 30, column: 39, scope: !18) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.d9506acff356e5d2", scope: null, file: !19, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.54ec9394d5df5464", scope: null, file: !19, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !23 = !DILocation(line: 31, column: 38, scope: !22) // CHECK:STDOUT: !24 = !DILocation(line: 31, column: 31, scope: !22) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.d9506acff356e5d2", scope: null, file: !19, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.54ec9394d5df5464", scope: null, file: !19, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !26 = !DILocation(line: 22, column: 5, scope: !25) // CHECK:STDOUT: !27 = !DILocation(line: 23, column: 5, scope: !25) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.52304025ab0e7af9:Copy.Core.58c6957df82926a9", scope: null, file: !29, line: 58, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0f13b78cd2788a9b:Copy.Core.58c6957df82926a9", scope: null, file: !29, line: 58, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !29 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") // CHECK:STDOUT: !30 = !DILocation(line: 59, column: 13, scope: !28) // CHECK:STDOUT: !31 = !DILocation(line: 59, column: 12, scope: !28) diff --git a/toolchain/lower/testdata/for/break_continue.carbon b/toolchain/lower/testdata/for/break_continue.carbon index 5c531466d60d4..da5bef04f401d 100644 --- a/toolchain/lower/testdata/for/break_continue.carbon +++ b/toolchain/lower/testdata/for/break_continue.carbon @@ -123,7 +123,7 @@ fn For() { // CHECK:STDOUT: declare void @_CInclusiveRange.Core(ptr sret({ i32, i32 }), i32, i32) // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) !dbg !41 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea"(ptr %self, i32 1), !dbg !43 +// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d"(ptr %self, i32 1), !dbg !43 // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -141,15 +141,15 @@ fn For() { // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea"(ptr %self, i32 %other) !dbg !51 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861"(i32 %other), !dbg !52 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d"(ptr %self, i32 %other) !dbg !51 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861"(i32 %other), !dbg !52 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !53 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !53 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !53 // CHECK:STDOUT: ret void, !dbg !53 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861"(i32 %self) !dbg !54 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861"(i32 %self) !dbg !54 { // CHECK:STDOUT: ret i32 %self, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -212,9 +212,9 @@ fn For() { // CHECK:STDOUT: !48 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.de631560529e9861", scope: null, file: !35, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !49 = !DILocation(line: 22, column: 5, scope: !48) // CHECK:STDOUT: !50 = !DILocation(line: 23, column: 5, scope: !48) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea", scope: null, file: !42, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d", scope: null, file: !42, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !52 = !DILocation(line: 4294967295, scope: !51) // CHECK:STDOUT: !53 = !DILocation(line: 275, column: 3, scope: !51) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861", scope: null, file: !55, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861", scope: null, file: !55, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !55 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") // CHECK:STDOUT: !56 = !DILocation(line: 24, column: 38, scope: !54) diff --git a/toolchain/lower/testdata/for/for.carbon b/toolchain/lower/testdata/for/for.carbon index 5c9246591b4f8..c436bc0ae07fa 100644 --- a/toolchain/lower/testdata/for/for.carbon +++ b/toolchain/lower/testdata/for/for.carbon @@ -111,7 +111,7 @@ fn For() { // CHECK:STDOUT: declare void @_CInclusiveRange.Core(ptr sret({ i32, i32 }), i32, i32) // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) !dbg !37 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea"(ptr %self, i32 1), !dbg !39 +// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d"(ptr %self, i32 1), !dbg !39 // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -129,15 +129,15 @@ fn For() { // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea"(ptr %self, i32 %other) !dbg !47 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861"(i32 %other), !dbg !48 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d"(ptr %self, i32 %other) !dbg !47 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861"(i32 %other), !dbg !48 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !49 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !49 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !49 // CHECK:STDOUT: ret void, !dbg !49 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861"(i32 %self) !dbg !50 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861"(i32 %self) !dbg !50 { // CHECK:STDOUT: ret i32 %self, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -196,9 +196,9 @@ fn For() { // CHECK:STDOUT: !44 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.de631560529e9861", scope: null, file: !31, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !45 = !DILocation(line: 22, column: 5, scope: !44) // CHECK:STDOUT: !46 = !DILocation(line: 23, column: 5, scope: !44) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea", scope: null, file: !38, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d", scope: null, file: !38, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !48 = !DILocation(line: 4294967295, scope: !47) // CHECK:STDOUT: !49 = !DILocation(line: 275, column: 3, scope: !47) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861", scope: null, file: !51, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861", scope: null, file: !51, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !51 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") // CHECK:STDOUT: !52 = !DILocation(line: 24, column: 38, scope: !50) diff --git a/toolchain/lower/testdata/function/generic/call_basic.carbon b/toolchain/lower/testdata/function/generic/call_basic.carbon index 8b3a1bc16ab4a..3454cfb9db3de 100644 --- a/toolchain/lower/testdata/function/generic/call_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic.carbon @@ -85,12 +85,12 @@ fn M() { // CHECK:STDOUT: %.loc54 = load i32, ptr %n.var, align 4, !dbg !13 // CHECK:STDOUT: call void @_CF.Main.b88d1103f417c6d4(i32 %.loc54), !dbg !14 // CHECK:STDOUT: %.loc55_9 = load i32, ptr %n.var, align 4, !dbg !15 -// CHECK:STDOUT: %G.call.loc55 = call i32 @_CG.Main.5458818be7a67202(i32 %.loc55_9), !dbg !16 +// CHECK:STDOUT: %G.call.loc55 = call i32 @_CG.Main.c831c62a6babb214(i32 %.loc55_9), !dbg !16 // CHECK:STDOUT: store i32 %G.call.loc55, ptr %m.var, align 4, !dbg !17 // CHECK:STDOUT: %.loc56 = load double, ptr %p.var, align 8, !dbg !18 // CHECK:STDOUT: call void @_CF.Main.d4b5665541d5d7a8(double %.loc56), !dbg !19 // CHECK:STDOUT: %.loc57_9 = load double, ptr %p.var, align 8, !dbg !20 -// CHECK:STDOUT: %G.call.loc57 = call double @_CG.Main.6d1061d836075fdf(double %.loc57_9), !dbg !21 +// CHECK:STDOUT: %G.call.loc57 = call double @_CG.Main.54ba0c5f7a576a29(double %.loc57_9), !dbg !21 // CHECK:STDOUT: store double %G.call.loc57, ptr %q.var, align 8, !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } @@ -106,7 +106,7 @@ fn M() { // CHECK:STDOUT: ret void, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.5458818be7a67202(i32 %x) !dbg !26 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.c831c62a6babb214(i32 %x) !dbg !26 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc29_6.3.temp = alloca i32, align 4, !dbg !27 // CHECK:STDOUT: %.loc31_8.3.temp = alloca i32, align 4, !dbg !28 @@ -122,7 +122,7 @@ fn M() { // CHECK:STDOUT: store i32 %H.call.loc29, ptr %.loc29_6.3.temp, align 4, !dbg !27 // CHECK:STDOUT: %H.call.loc30 = call %type @_CH.Main.402deed6b8733082(%type zeroinitializer), !dbg !36 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !28 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.5458818be7a67202(i32 %x), !dbg !28 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.c831c62a6babb214(i32 %x), !dbg !28 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !29 // CHECK:STDOUT: store i32 %G.call, ptr %.loc31_8.3.temp, align 4, !dbg !28 // CHECK:STDOUT: %.loc31_8.5 = load i32, ptr %.loc31_8.3.temp, align 4, !dbg !28 @@ -151,7 +151,7 @@ fn M() { // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr double @_CG.Main.6d1061d836075fdf(double %x) !dbg !48 { +// CHECK:STDOUT: define linkonce_odr double @_CG.Main.54ba0c5f7a576a29(double %x) !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc29_6.3.temp = alloca double, align 8, !dbg !49 // CHECK:STDOUT: %.loc31_8.3.temp = alloca double, align 8, !dbg !50 @@ -167,7 +167,7 @@ fn M() { // CHECK:STDOUT: store double %H.call.loc29, ptr %.loc29_6.3.temp, align 8, !dbg !49 // CHECK:STDOUT: %H.call.loc30 = call %type @_CH.Main.402deed6b8733082(%type zeroinitializer), !dbg !58 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_8.3.temp), !dbg !50 -// CHECK:STDOUT: %G.call = call double @_CG.Main.6d1061d836075fdf(double %x), !dbg !50 +// CHECK:STDOUT: %G.call = call double @_CG.Main.54ba0c5f7a576a29(double %x), !dbg !50 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc31_9.3.temp), !dbg !51 // CHECK:STDOUT: store double %G.call, ptr %.loc31_8.3.temp, align 8, !dbg !50 // CHECK:STDOUT: %.loc31_8.5 = load double, ptr %.loc31_8.3.temp, align 8, !dbg !50 @@ -257,7 +257,7 @@ fn M() { // CHECK:STDOUT: !23 = !DILocation(line: 48, column: 1, scope: !8) // CHECK:STDOUT: !24 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !25 = !DILocation(line: 19, column: 1, scope: !24) -// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.5458818be7a67202", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !26 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c831c62a6babb214", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !27 = !DILocation(line: 29, column: 3, scope: !26) // CHECK:STDOUT: !28 = !DILocation(line: 31, column: 5, scope: !26) // CHECK:STDOUT: !29 = !DILocation(line: 31, column: 3, scope: !26) @@ -279,7 +279,7 @@ fn M() { // CHECK:STDOUT: !45 = !DILocation(line: 45, column: 3, scope: !26) // CHECK:STDOUT: !46 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.d4b5665541d5d7a8", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !47 = !DILocation(line: 19, column: 1, scope: !46) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.6d1061d836075fdf", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.54ba0c5f7a576a29", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !49 = !DILocation(line: 29, column: 3, scope: !48) // CHECK:STDOUT: !50 = !DILocation(line: 31, column: 5, scope: !48) // CHECK:STDOUT: !51 = !DILocation(line: 31, column: 3, scope: !48) diff --git a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon index 738c03737eca2..1fd5baa0d16cb 100644 --- a/toolchain/lower/testdata/function/generic/call_basic_depth.carbon +++ b/toolchain/lower/testdata/function/generic/call_basic_depth.carbon @@ -48,7 +48,7 @@ fn M() { // CHECK:STDOUT: %.loc34 = load i32, ptr %n.var, align 4, !dbg !9 // CHECK:STDOUT: call void @_CF.Main.b88d1103f417c6d4(i32 %.loc34), !dbg !10 // CHECK:STDOUT: %.loc35_9 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %G.call = call i32 @_CG.Main.5458818be7a67202(i32 %.loc35_9), !dbg !12 +// CHECK:STDOUT: %G.call = call i32 @_CG.Main.c831c62a6babb214(i32 %.loc35_9), !dbg !12 // CHECK:STDOUT: store i32 %G.call, ptr %m.var, align 4, !dbg !13 // CHECK:STDOUT: ret void, !dbg !14 // CHECK:STDOUT: } @@ -61,7 +61,7 @@ fn M() { // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.5458818be7a67202(i32 %x) !dbg !17 { +// CHECK:STDOUT: define linkonce_odr i32 @_CG.Main.c831c62a6babb214(i32 %x) !dbg !17 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc25_6.3.temp = alloca i32, align 4, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc25_6.3.temp), !dbg !18 @@ -102,7 +102,7 @@ fn M() { // CHECK:STDOUT: !14 = !DILocation(line: 30, column: 1, scope: !4) // CHECK:STDOUT: !15 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !16 = !DILocation(line: 16, column: 1, scope: !15) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.5458818be7a67202", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c831c62a6babb214", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !18 = !DILocation(line: 25, column: 3, scope: !17) // CHECK:STDOUT: !19 = !DILocation(line: 26, column: 3, scope: !17) // CHECK:STDOUT: !20 = !DILocation(line: 27, column: 3, scope: !17) diff --git a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon index d6d66a7b43560..42e540a51c927 100644 --- a/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon +++ b/toolchain/lower/testdata/function/generic/call_deref_ptr.carbon @@ -52,26 +52,26 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !8 // CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @_CF.Main.5458818be7a67202(ptr %.loc39_5), !dbg !10 +// CHECK:STDOUT: call void @_CF.Main.c831c62a6babb214(ptr %.loc39_5), !dbg !10 // CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.6d1061d836075fdf(ptr %.loc40_5), !dbg !12 +// CHECK:STDOUT: call void @_CF.Main.54ba0c5f7a576a29(ptr %.loc40_5), !dbg !12 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #0 // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.5458818be7a67202(ptr %x) !dbg !14 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.c831c62a6babb214(ptr %x) !dbg !14 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type @_CA.Main.402deed6b8733082(%type zeroinitializer), !dbg !15 -// CHECK:STDOUT: call void @_CB.Main.5458818be7a67202(ptr %x), !dbg !16 +// CHECK:STDOUT: call void @_CB.Main.c831c62a6babb214(ptr %x), !dbg !16 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.6d1061d836075fdf(ptr %x) !dbg !18 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.54ba0c5f7a576a29(ptr %x) !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type @_CA.Main.402deed6b8733082(%type zeroinitializer), !dbg !19 -// CHECK:STDOUT: call void @_CB.Main.6d1061d836075fdf(ptr %x), !dbg !20 +// CHECK:STDOUT: call void @_CB.Main.54ba0c5f7a576a29(ptr %x), !dbg !20 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -80,7 +80,7 @@ fn M() { // CHECK:STDOUT: ret %type %x, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.5458818be7a67202(ptr %x) !dbg !24 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.c831c62a6babb214(ptr %x) !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc27_7.3.temp = alloca i32, align 4, !dbg !25 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !25 @@ -90,7 +90,7 @@ fn M() { // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.6d1061d836075fdf(ptr %x) !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.54ba0c5f7a576a29(ptr %x) !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc27_7.3.temp = alloca double, align 8, !dbg !29 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc27_7.3.temp), !dbg !29 @@ -133,21 +133,21 @@ fn M() { // CHECK:STDOUT: !11 = !DILocation(line: 40, column: 5, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 40, column: 3, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 35, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5458818be7a67202", scope: null, file: !3, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c831c62a6babb214", scope: null, file: !3, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !15 = !DILocation(line: 31, column: 3, scope: !14) // CHECK:STDOUT: !16 = !DILocation(line: 32, column: 3, scope: !14) // CHECK:STDOUT: !17 = !DILocation(line: 30, column: 1, scope: !14) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6d1061d836075fdf", scope: null, file: !3, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.54ba0c5f7a576a29", scope: null, file: !3, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !19 = !DILocation(line: 31, column: 3, scope: !18) // CHECK:STDOUT: !20 = !DILocation(line: 32, column: 3, scope: !18) // CHECK:STDOUT: !21 = !DILocation(line: 30, column: 1, scope: !18) // CHECK:STDOUT: !22 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.402deed6b8733082", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 3, scope: !22) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.5458818be7a67202", scope: null, file: !3, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c831c62a6babb214", scope: null, file: !3, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !25 = !DILocation(line: 27, column: 3, scope: !24) // CHECK:STDOUT: !26 = !DILocation(line: 27, column: 5, scope: !24) // CHECK:STDOUT: !27 = !DILocation(line: 26, column: 1, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.6d1061d836075fdf", scope: null, file: !3, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.54ba0c5f7a576a29", scope: null, file: !3, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !29 = !DILocation(line: 27, column: 3, scope: !28) // CHECK:STDOUT: !30 = !DILocation(line: 27, column: 5, scope: !28) // CHECK:STDOUT: !31 = !DILocation(line: 26, column: 1, scope: !28) diff --git a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon index 606271eaa4280..48c016d6d6872 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon @@ -61,14 +61,14 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: define void @main() !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CG.Main.f84edebea9f363f0(), !dbg !13 -// CHECK:STDOUT: call void @_CG.Main.b5f20a8e74ede332(), !dbg !14 +// CHECK:STDOUT: call void @_CG.Main.734903ef36bb7752(), !dbg !13 +// CHECK:STDOUT: call void @_CG.Main.a92ea42d6b971554(), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: declare i32 @printf(ptr, ...) // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.f84edebea9f363f0() !dbg !16 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.734903ef36bb7752() !dbg !16 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc37_20.1.temp = alloca i1, align 1, !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc37_20.1.temp), !dbg !17 @@ -80,7 +80,7 @@ fn Run() { // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CG.Main.b5f20a8e74ede332() !dbg !19 { +// CHECK:STDOUT: define linkonce_odr void @_CG.Main.a92ea42d6b971554() !dbg !19 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc37_20.1.temp = alloca i32, align 4, !dbg !20 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc37_20.1.temp), !dbg !20 @@ -118,9 +118,9 @@ fn Run() { // CHECK:STDOUT: !13 = !DILocation(line: 41, column: 3, scope: !12) // CHECK:STDOUT: !14 = !DILocation(line: 42, column: 3, scope: !12) // CHECK:STDOUT: !15 = !DILocation(line: 40, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.f84edebea9f363f0", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.734903ef36bb7752", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !17 = !DILocation(line: 37, column: 16, scope: !16) // CHECK:STDOUT: !18 = !DILocation(line: 36, column: 1, scope: !16) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b5f20a8e74ede332", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.a92ea42d6b971554", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !20 = !DILocation(line: 37, column: 16, scope: !19) // CHECK:STDOUT: !21 = !DILocation(line: 36, column: 1, scope: !19) diff --git a/toolchain/lower/testdata/function/generic/call_different_specific.carbon b/toolchain/lower/testdata/function/generic/call_different_specific.carbon index f7d0bbc00a308..e9636302115fd 100644 --- a/toolchain/lower/testdata/function/generic/call_different_specific.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_specific.carbon @@ -59,26 +59,26 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_i32.var), !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %ptr_f64.var), !dbg !8 // CHECK:STDOUT: %.loc46_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @_CF.Main.5458818be7a67202(ptr %.loc46_5), !dbg !10 +// CHECK:STDOUT: call void @_CF.Main.c831c62a6babb214(ptr %.loc46_5), !dbg !10 // CHECK:STDOUT: %.loc47_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.6d1061d836075fdf(ptr %.loc47_5), !dbg !12 +// CHECK:STDOUT: call void @_CF.Main.54ba0c5f7a576a29(ptr %.loc47_5), !dbg !12 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #0 // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.5458818be7a67202(ptr %x) !dbg !14 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.c831c62a6babb214(ptr %x) !dbg !14 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type @_CA.Main.402deed6b8733082(%type zeroinitializer), !dbg !15 -// CHECK:STDOUT: call void @_CB.Main.5458818be7a67202(ptr %x), !dbg !16 +// CHECK:STDOUT: call void @_CB.Main.c831c62a6babb214(ptr %x), !dbg !16 // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.6d1061d836075fdf(ptr %x) !dbg !18 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.54ba0c5f7a576a29(ptr %x) !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %A.call = call %type @_CA.Main.402deed6b8733082(%type zeroinitializer), !dbg !19 -// CHECK:STDOUT: call void @_CB.Main.6d1061d836075fdf(ptr %x), !dbg !20 +// CHECK:STDOUT: call void @_CB.Main.54ba0c5f7a576a29(ptr %x), !dbg !20 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -87,7 +87,7 @@ fn M() { // CHECK:STDOUT: ret %type %x, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.5458818be7a67202(ptr %x) !dbg !24 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.c831c62a6babb214(ptr %x) !dbg !24 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc34_7.3.temp = alloca i32, align 4, !dbg !25 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !25 @@ -97,7 +97,7 @@ fn M() { // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CB.Main.6d1061d836075fdf(ptr %x) !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CB.Main.54ba0c5f7a576a29(ptr %x) !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc34_7.3.temp = alloca double, align 8, !dbg !29 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc34_7.3.temp), !dbg !29 @@ -140,21 +140,21 @@ fn M() { // CHECK:STDOUT: !11 = !DILocation(line: 47, column: 5, scope: !4) // CHECK:STDOUT: !12 = !DILocation(line: 47, column: 3, scope: !4) // CHECK:STDOUT: !13 = !DILocation(line: 42, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.5458818be7a67202", scope: null, file: !3, line: 37, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.c831c62a6babb214", scope: null, file: !3, line: 37, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !15 = !DILocation(line: 38, column: 3, scope: !14) // CHECK:STDOUT: !16 = !DILocation(line: 39, column: 3, scope: !14) // CHECK:STDOUT: !17 = !DILocation(line: 37, column: 1, scope: !14) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6d1061d836075fdf", scope: null, file: !3, line: 37, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.54ba0c5f7a576a29", scope: null, file: !3, line: 37, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !19 = !DILocation(line: 38, column: 3, scope: !18) // CHECK:STDOUT: !20 = !DILocation(line: 39, column: 3, scope: !18) // CHECK:STDOUT: !21 = !DILocation(line: 37, column: 1, scope: !18) // CHECK:STDOUT: !22 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.402deed6b8733082", scope: null, file: !3, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !23 = !DILocation(line: 26, column: 3, scope: !22) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.5458818be7a67202", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.c831c62a6babb214", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !25 = !DILocation(line: 34, column: 3, scope: !24) // CHECK:STDOUT: !26 = !DILocation(line: 34, column: 5, scope: !24) // CHECK:STDOUT: !27 = !DILocation(line: 33, column: 1, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.6d1061d836075fdf", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.54ba0c5f7a576a29", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !29 = !DILocation(line: 34, column: 3, scope: !28) // CHECK:STDOUT: !30 = !DILocation(line: 34, column: 5, scope: !28) // CHECK:STDOUT: !31 = !DILocation(line: 33, column: 1, scope: !28) diff --git a/toolchain/lower/testdata/function/generic/type_representation.carbon b/toolchain/lower/testdata/function/generic/type_representation.carbon index 3800d6ad414f1..adb89e5ccb869 100644 --- a/toolchain/lower/testdata/function/generic/type_representation.carbon +++ b/toolchain/lower/testdata/function/generic/type_representation.carbon @@ -84,7 +84,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: // CHECK:STDOUT: define i32 @_CF_i32.Main(i32 %a) !dbg !8 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %F.call = call i32 @_CF.Main.6a6da5347b4dd84b(i32 %a), !dbg !9 +// CHECK:STDOUT: %F.call = call i32 @_CF.Main.db99c030f99223d6(i32 %a), !dbg !9 // CHECK:STDOUT: ret i32 %F.call, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -103,7 +103,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF_X.Main(ptr sret({ i32, i32 }) %return, ptr %a) !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.287da2429e961b22(ptr %return, ptr %a), !dbg !17 +// CHECK:STDOUT: call void @_CF.Main.eba3dea1578ec8e5(ptr %return, ptr %a), !dbg !17 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -114,7 +114,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF_empty_tuple.Main() !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.bcfa232a7f7e3dde(), !dbg !22 +// CHECK:STDOUT: call void @_CF.Main.af8424a3d0a9008a(), !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -133,7 +133,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF_two_tuple.Main(ptr sret({ i32, i32 }) %return, ptr %a) !dbg !27 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.fd0a4d4c23847a64(ptr %return, ptr %a), !dbg !28 +// CHECK:STDOUT: call void @_CF.Main.d67e493e33e87aab(ptr %return, ptr %a), !dbg !28 // CHECK:STDOUT: ret void, !dbg !29 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -152,11 +152,11 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CF_nested_tuple.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) !dbg !35 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CF.Main.73a97bc8c9926cb5(ptr %return, ptr %a), !dbg !36 +// CHECK:STDOUT: call void @_CF.Main.373a8775794c641a(ptr %return, ptr %a), !dbg !36 // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.6a6da5347b4dd84b(i32 %a) !dbg !38 { +// CHECK:STDOUT: define linkonce_odr i32 @_CF.Main.db99c030f99223d6(i32 %a) !dbg !38 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %v.var = alloca i32, align 4, !dbg !39 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !39 @@ -166,7 +166,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ret i32 %.loc19, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.287da2429e961b22(ptr sret({ i32, i32 }) %return, ptr %a) !dbg !43 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.eba3dea1578ec8e5(ptr sret({ i32, i32 }) %return, ptr %a) !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %v.var = alloca { i32, i32 }, align 8, !dbg !44 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !44 @@ -175,7 +175,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ret void, !dbg !47 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.bcfa232a7f7e3dde() !dbg !48 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.af8424a3d0a9008a() !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %v.var = alloca {}, align 8, !dbg !49 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !49 @@ -184,7 +184,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ret void, !dbg !52 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.fd0a4d4c23847a64(ptr sret({ i32, i32 }) %return, ptr %a) !dbg !53 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.d67e493e33e87aab(ptr sret({ i32, i32 }) %return, ptr %a) !dbg !53 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %v.var = alloca { i32, i32 }, align 8, !dbg !54 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !54 @@ -193,7 +193,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: ret void, !dbg !57 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @_CF.Main.73a97bc8c9926cb5(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) !dbg !58 { +// CHECK:STDOUT: define linkonce_odr void @_CF.Main.373a8775794c641a(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %a) !dbg !58 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %v.var = alloca { { i32, i32 }, { i32, i32 } }, align 8, !dbg !59 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %v.var), !dbg !59 @@ -251,27 +251,27 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) { // CHECK:STDOUT: !35 = distinct !DISubprogram(name: "F_nested_tuple", linkageName: "_CF_nested_tuple.Main", scope: null, file: !3, line: 73, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !36 = !DILocation(line: 74, column: 10, scope: !35) // CHECK:STDOUT: !37 = !DILocation(line: 74, column: 3, scope: !35) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.6a6da5347b4dd84b", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.db99c030f99223d6", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !39 = !DILocation(line: 18, column: 3, scope: !38) // CHECK:STDOUT: !40 = !DILocation(line: 18, column: 14, scope: !38) // CHECK:STDOUT: !41 = !DILocation(line: 19, column: 10, scope: !38) // CHECK:STDOUT: !42 = !DILocation(line: 19, column: 3, scope: !38) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.287da2429e961b22", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.eba3dea1578ec8e5", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !44 = !DILocation(line: 18, column: 3, scope: !43) // CHECK:STDOUT: !45 = !DILocation(line: 18, column: 14, scope: !43) // CHECK:STDOUT: !46 = !DILocation(line: 19, column: 10, scope: !43) // CHECK:STDOUT: !47 = !DILocation(line: 19, column: 3, scope: !43) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.bcfa232a7f7e3dde", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.af8424a3d0a9008a", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !49 = !DILocation(line: 18, column: 3, scope: !48) // CHECK:STDOUT: !50 = !DILocation(line: 18, column: 14, scope: !48) // CHECK:STDOUT: !51 = !DILocation(line: 19, column: 10, scope: !48) // CHECK:STDOUT: !52 = !DILocation(line: 19, column: 3, scope: !48) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.fd0a4d4c23847a64", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.d67e493e33e87aab", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !54 = !DILocation(line: 18, column: 3, scope: !53) // CHECK:STDOUT: !55 = !DILocation(line: 18, column: 14, scope: !53) // CHECK:STDOUT: !56 = !DILocation(line: 19, column: 10, scope: !53) // CHECK:STDOUT: !57 = !DILocation(line: 19, column: 3, scope: !53) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.73a97bc8c9926cb5", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.373a8775794c641a", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !59 = !DILocation(line: 18, column: 3, scope: !58) // CHECK:STDOUT: !60 = !DILocation(line: 18, column: 14, scope: !58) // CHECK:STDOUT: !61 = !DILocation(line: 19, column: 10, scope: !58) diff --git a/toolchain/lower/testdata/operators/increment.carbon b/toolchain/lower/testdata/operators/increment.carbon index 9cd973d89c963..fb4b3aa9f567f 100644 --- a/toolchain/lower/testdata/operators/increment.carbon +++ b/toolchain/lower/testdata/operators/increment.carbon @@ -35,19 +35,19 @@ fn IncrSigned() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #0 // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) !dbg !10 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea"(ptr %self, i32 1), !dbg !12 +// CHECK:STDOUT: call void @"_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d"(ptr %self, i32 1), !dbg !12 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea"(ptr %self, i32 %other) !dbg !14 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861"(i32 %other), !dbg !15 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d"(ptr %self, i32 %other) !dbg !14 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861"(i32 %other), !dbg !15 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !16 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !16 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !16 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861"(i32 %self) !dbg !17 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861"(i32 %self) !dbg !17 { // CHECK:STDOUT: ret i32 %self, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -70,9 +70,9 @@ fn IncrSigned() { // CHECK:STDOUT: !11 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !12 = !DILocation(line: 341, column: 5, scope: !10) // CHECK:STDOUT: !13 = !DILocation(line: 339, column: 3, scope: !10) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.fb4d58f0571f0cea", scope: null, file: !11, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.Core:AddAssignWith.Core.2122e6c8c4f4206d", scope: null, file: !11, line: 275, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !15 = !DILocation(line: 4294967295, scope: !14) // CHECK:STDOUT: !16 = !DILocation(line: 275, column: 3, scope: !14) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.870a309ce5614ca6:ImplicitAs.Core.de631560529e9861", scope: null, file: !18, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.2a0d145dae8e0e7f:ImplicitAs.Core.de631560529e9861", scope: null, file: !18, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !18 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") // CHECK:STDOUT: !19 = !DILocation(line: 24, column: 38, scope: !17) diff --git a/toolchain/sem_ir/expr_info.cpp b/toolchain/sem_ir/expr_info.cpp index dff0fdec5feef..4be902a4728ea 100644 --- a/toolchain/sem_ir/expr_info.cpp +++ b/toolchain/sem_ir/expr_info.cpp @@ -153,6 +153,7 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { case StringLiteral::Kind: case StructType::Kind: case StructValue::Kind: + case SymbolicBindingType::Kind: case TupleType::Kind: case TupleValue::Kind: case TypeOfInst::Kind: diff --git a/toolchain/sem_ir/inst_kind.def b/toolchain/sem_ir/inst_kind.def index 10d836d4d5c51..6c041cbeda770 100644 --- a/toolchain/sem_ir/inst_kind.def +++ b/toolchain/sem_ir/inst_kind.def @@ -131,6 +131,7 @@ CARBON_SEM_IR_INST_KIND(StructLiteral) CARBON_SEM_IR_INST_KIND(StructType) CARBON_SEM_IR_INST_KIND(StructValue) 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 271bed5eb152e..ebcd4f346d806 100644 --- a/toolchain/sem_ir/inst_namer.cpp +++ b/toolchain/sem_ir/inst_namer.cpp @@ -814,19 +814,22 @@ auto InstNamer::NamingContext::NameInst() -> void { return; } case CARBON_KIND(FacetAccessType inst): { - auto name_id = NameId::None; if (auto name = sem_ir().insts().TryGetAs(inst.facet_value_inst_id)) { - name_id = name->name_id; - } else if (auto symbolic = sem_ir().insts().TryGetAs( - inst.facet_value_inst_id)) { - name_id = sem_ir().entity_names().Get(symbolic->entity_name_id).name_id; + AddInstNameId(name->name_id, ".as_type"); + } else { + AddInstName("as_type"); } - + 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, ".as_type"); + AddInstNameId(name_id, ".binding.as_type"); } else { - AddInstName("as_type"); + AddInstName("binding.as_type"); } return; } diff --git a/toolchain/sem_ir/stringify.cpp b/toolchain/sem_ir/stringify.cpp index 281a448a083cd..5fbf0dd258c47 100644 --- a/toolchain/sem_ir/stringify.cpp +++ b/toolchain/sem_ir/stringify.cpp @@ -627,6 +627,10 @@ 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 4d86f8d4ef9f6..ed4274fa95049 100644 --- a/toolchain/sem_ir/type_iterator.cpp +++ b/toolchain/sem_ir/type_iterator.cpp @@ -76,6 +76,13 @@ auto TypeIterator::ProcessTypeId(TypeId type_id) -> std::optional { sem_ir_->insts().Get(access.facet_value_inst_id).type_id(); return Step::SymbolicType{.facet_type_id = facet_type_id}; } + case CARBON_KIND(SemIR::SymbolicBindingType bind): { + // TODO: Look in ScopeStack with the entity_name_id to find the facet + // value. + auto facet_type_id = + sem_ir_->insts().Get(bind.facet_value_inst_id).type_id(); + return Step::SymbolicType{.facet_type_id = facet_type_id}; + } // ==== Concrete types ==== diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index 0f1544260ffb2..75ea18203e8e2 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -1687,6 +1687,23 @@ 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; +}; + // A temporary value. struct Temporary { static constexpr auto Kind = InstKind::Temporary.Define(