From 4539114c2112d4b36ec693a8cd0cc01a2c5ad356 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 10 Mar 2025 12:00:35 -0400 Subject: [PATCH] Return a set of ImplWitnesses from impl lookup (#5075) A query facet type may contain multiple required interfaces, in which case impl lookup should return an ImplWitness for an impl that is used for each interface in the query. We bundle these together into an instruction block and return that from impl lookup. The witnesses are in the same order as the interfaces in the `CompleteFacetType::required_interfaces`. This allows walking the `required_interfaces` to find an interface to give an index that can also be used to grab a witness from this set, or from FacetValue. FacetValue now has an InstBlockId for the set of witnesses of the FacetType, instead of a single ImplWitness instruction id. FacetAccessWitness includes the index of the witness (determined from the position in `required_interfaces`) of the witness it's accessing from the FacetType. The toolchain/check/testdata/facet/no_prelude/fail_todo_call_combined_impl_witness.carbon test demonstrates the fix in the resulting SemIR. We can see the calls to methods on a multi-interface FacetType result in a FacetAccessWitness with an index of the correct interface, and this results in a witness that leads to the correct impl's function. There is a TODO in member access, where it does not have a `CompleteFacetType` yet, so it uses the index in `FacetTypeInfo::impls_constraints` instead, but this can be incorrect in the presence of named constraints, which when completed can add more interfaces to the `CompleteFacetType` and which are sorted into an arbitrary order with the rest there. --------- Co-authored-by: josh11b <15258583+josh11b@users.noreply.github.com> --- toolchain/check/context.h | 2 +- toolchain/check/convert.cpp | 34 +- toolchain/check/eval_inst.cpp | 12 +- toolchain/check/impl_lookup.cpp | 91 ++-- toolchain/check/impl_lookup.h | 23 +- toolchain/check/import_ref.cpp | 8 +- toolchain/check/interface.cpp | 4 +- toolchain/check/member_access.cpp | 55 ++- .../testdata/array/array_vs_tuple.carbon | 16 +- .../testdata/array/assign_return_value.carbon | 6 +- .../check/testdata/array/assign_var.carbon | 10 +- toolchain/check/testdata/array/base.carbon | 6 +- .../testdata/array/canonicalize_index.carbon | 28 +- .../testdata/array/fail_bound_negative.carbon | 12 +- .../fail_out_of_bound_non_literal.carbon | 12 +- .../testdata/array/fail_type_mismatch.carbon | 6 +- .../testdata/array/function_param.carbon | 12 +- .../testdata/array/index_not_literal.carbon | 12 +- .../array/init_dependent_bound.carbon | 18 +- .../check/testdata/array/nine_elements.carbon | 22 +- .../testdata/as/adapter_conversion.carbon | 34 +- toolchain/check/testdata/as/basic.carbon | 6 +- toolchain/check/testdata/as/overloaded.carbon | 18 +- .../testdata/basics/builtin_types.carbon | 6 +- .../fail_numeric_literal_overflow.carbon | 10 +- .../testdata/basics/numeric_literals.carbon | 16 +- toolchain/check/testdata/basics/parens.carbon | 8 +- .../check/testdata/basics/run_i32.carbon | 6 +- .../convert_class_type_to_facet_type.carbon | 4 +- ...t_class_type_to_generic_facet_value.carbon | 16 +- ...rt_class_value_to_facet_value_value.carbon | 6 +- ..._value_to_generic_facet_value_value.carbon | 62 +-- ...t_value_as_type_knows_original_type.carbon | 24 +- .../convert_facet_value_to_facet_value.carbon | 8 +- .../convert_facet_value_to_itself.carbon | 8 +- ..._facet_value_to_narrowed_facet_type.carbon | 84 ++-- ...t_facet_value_value_to_blanket_impl.carbon | 8 +- ..._value_to_generic_facet_value_value.carbon | 56 +-- ...convert_facet_value_value_to_itself.carbon | 10 +- .../no_prelude/convert_interface.carbon | 4 +- ...t_class_type_to_generic_facet_value.carbon | 2 +- ...t_value_shouldnt_know_concrete_type.carbon | 4 +- ...uction_uses_runtime_type_conversion.carbon | 6 +- .../value_with_type_through_access.carbon | 6 +- .../check/testdata/builtins/bool/eq.carbon | 12 +- .../check/testdata/builtins/bool/neq.carbon | 12 +- .../testdata/builtins/float/make_type.carbon | 14 +- .../check/testdata/builtins/print/char.carbon | 8 +- .../check/testdata/builtins/print/int.carbon | 8 +- toolchain/check/testdata/choice/basic.carbon | 12 +- .../testdata/choice/fail_todo_params.carbon | 8 +- .../testdata/class/access_modifers.carbon | 30 +- .../testdata/class/adapter/init_adapt.carbon | 16 +- toolchain/check/testdata/class/base.carbon | 8 +- .../check/testdata/class/base_method.carbon | 6 +- toolchain/check/testdata/class/basic.carbon | 6 +- .../testdata/class/derived_to_base.carbon | 10 +- .../class/fail_field_modifiers.carbon | 8 +- .../check/testdata/class/fail_init.carbon | 6 +- .../class/fail_init_as_inplace.carbon | 8 +- .../check/testdata/class/fail_scope.carbon | 6 +- .../check/testdata/class/field_access.carbon | 8 +- .../class/field_access_in_value.carbon | 8 +- .../check/testdata/class/generic/call.carbon | 8 +- .../generic/complete_in_conversion.carbon | 6 +- .../testdata/class/generic/import.carbon | 12 +- .../testdata/class/generic/stringify.carbon | 18 +- toolchain/check/testdata/class/import.carbon | 8 +- .../check/testdata/class/import_base.carbon | 10 +- .../testdata/class/inheritance_access.carbon | 18 +- toolchain/check/testdata/class/init_as.carbon | 8 +- toolchain/check/testdata/class/local.carbon | 6 +- toolchain/check/testdata/class/method.carbon | 6 +- toolchain/check/testdata/class/reorder.carbon | 6 +- .../testdata/class/reorder_qualified.carbon | 12 +- toolchain/check/testdata/class/scope.carbon | 8 +- .../testdata/class/self_conversion.carbon | 6 +- .../class/syntactic_merge_literal.carbon | 16 +- .../testdata/class/virtual_modifiers.carbon | 12 +- toolchain/check/testdata/deduce/array.carbon | 30 +- .../check/testdata/deduce/generic_type.carbon | 6 +- toolchain/check/testdata/deduce/tuple.carbon | 8 +- .../check/testdata/eval/aggregate.carbon | 18 +- .../check/testdata/eval/fail_aggregate.carbon | 14 +- toolchain/check/testdata/eval/symbolic.carbon | 6 +- .../testdata/facet/no_prelude/access.carbon | 110 ++--- ...ail_todo_call_combined_impl_witness.carbon | 161 +++---- .../testdata/function/builtin/call.carbon | 14 +- .../testdata/function/builtin/method.carbon | 24 +- .../no_prelude/call_from_operator.carbon | 50 +- .../check/testdata/function/call/i32.carbon | 6 +- .../function/call/more_param_ir.carbon | 8 +- .../testdata/function/call/params_one.carbon | 6 +- .../function/call/params_one_comma.carbon | 8 +- .../testdata/function/call/params_two.carbon | 8 +- .../function/call/params_two_comma.carbon | 12 +- .../call/prefer_unqualified_lookup.carbon | 6 +- .../function/declaration/import.carbon | 40 +- .../function/definition/import.carbon | 8 +- .../call_method_on_generic_facet.carbon | 58 +-- .../testdata/function/generic/deduce.carbon | 12 +- .../function/generic/param_in_type.carbon | 6 +- .../function/generic/undefined.carbon | 18 +- .../testdata/generic/call_basic_depth.carbon | 6 +- toolchain/check/testdata/generic/local.carbon | 6 +- .../check/testdata/global/simple_init.carbon | 6 +- .../testdata/global/simple_with_fun.carbon | 6 +- .../if/fail_reachable_fallthrough.carbon | 10 +- toolchain/check/testdata/if/fail_scope.carbon | 6 +- .../if/unreachable_fallthrough.carbon | 8 +- toolchain/check/testdata/if_expr/basic.carbon | 6 +- .../if_expr/constant_condition.carbon | 12 +- .../testdata/if_expr/control_flow.carbon | 8 +- .../check/testdata/if_expr/nested.carbon | 12 +- .../check/testdata/if_expr/struct.carbon | 8 +- .../testdata/impl/assoc_const_self.carbon | 126 +++--- .../check/testdata/impl/extend_impl.carbon | 8 +- .../testdata/impl/extend_impl_generic.carbon | 16 +- .../testdata/impl/fail_call_invalid.carbon | 6 +- .../impl/fail_impl_bad_assoc_fn.carbon | 52 +-- .../impl/fail_self_type_mismatch.carbon | 2 +- .../impl/fail_todo_use_assoc_const.carbon | 212 ++++----- toolchain/check/testdata/impl/impl_as.carbon | 2 +- .../check/testdata/impl/impl_forall.carbon | 2 +- .../check/testdata/impl/lookup/alias.carbon | 8 +- .../lookup/fail_todo_undefined_impl.carbon | 10 +- .../check/testdata/impl/lookup/generic.carbon | 52 +-- .../impl/lookup/instance_method.carbon | 6 +- .../impl/lookup/no_prelude/impl_forall.carbon | 22 +- .../impl/lookup/no_prelude/import.carbon | 62 +-- .../lookup/no_prelude/specific_args.carbon | 16 +- .../impl/lookup/no_prelude/subtyping.carbon | 16 +- .../testdata/impl/lookup/transitive.carbon | 8 +- .../testdata/impl/multiple_extend.carbon | 34 +- .../testdata/impl/no_prelude/basic.carbon | 2 +- .../testdata/impl/no_prelude/compound.carbon | 24 +- .../no_prelude/fail_extend_impl_scope.carbon | 6 +- .../impl/no_prelude/fail_impl_as_scope.carbon | 16 +- .../impl/no_prelude/impl_assoc_const.carbon | 218 ++++----- .../impl/no_prelude/impl_cycle.carbon | 25 +- .../no_prelude/import_builtin_call.carbon | 32 +- .../impl/no_prelude/import_compound.carbon | 22 +- .../impl/no_prelude/import_extend_impl.carbon | 10 +- .../import_interface_assoc_const.carbon | 218 ++++----- .../impl/no_prelude/import_self.carbon | 6 +- .../impl/no_prelude/import_use_generic.carbon | 12 +- .../impl/no_prelude/interface_args.carbon | 28 +- .../impl/no_prelude/self_in_class.carbon | 2 +- .../impl/no_prelude/self_in_signature.carbon | 24 +- .../todo_impl_with_unrelated_fn.carbon | 2 +- .../index/array_element_access.carbon | 12 +- .../check/testdata/index/expr_category.carbon | 28 +- .../index/fail_array_large_index.carbon | 10 +- .../index/fail_array_non_int_indexing.carbon | 6 +- .../fail_array_out_of_bound_access.carbon | 8 +- .../testdata/index/fail_expr_category.carbon | 16 +- .../index/fail_negative_indexing.carbon | 16 +- .../fail_todo_assoc_const_default.carbon | 6 +- .../testdata/interface/member_lookup.carbon | 32 +- .../no_prelude/compound_member_access.carbon | 294 ++++++------ .../interface/no_prelude/default_fn.carbon | 6 +- .../fail_assoc_fn_invalid_use.carbon | 24 +- .../interface/no_prelude/generic.carbon | 2 +- .../no_prelude/generic_import.carbon | 2 +- .../interface/no_prelude/local.carbon | 6 +- .../interface/todo_define_not_default.carbon | 6 +- .../ir/duplicate_name_same_line.carbon | 8 +- .../testdata/let/compile_time_bindings.carbon | 20 +- toolchain/check/testdata/let/convert.carbon | 10 +- .../testdata/let/fail_duplicate_decl.carbon | 8 +- .../check/testdata/let/fail_modifiers.carbon | 20 +- toolchain/check/testdata/let/global.carbon | 6 +- .../check/testdata/let/shadowed_decl.carbon | 6 +- .../testdata/namespace/add_to_import.carbon | 6 +- .../check/testdata/namespace/alias.carbon | 6 +- .../namespace/fail_decl_in_alias.carbon | 6 +- .../check/testdata/namespace/shadow.carbon | 8 +- .../operators/builtin/assignment.carbon | 28 +- .../fail_assignment_to_non_assignable.carbon | 20 +- .../fail_redundant_compound_access.carbon | 8 +- .../fail_type_mismatch_assignment.carbon | 6 +- .../testdata/operators/overloaded/add.carbon | 12 +- .../operators/overloaded/bit_and.carbon | 12 +- .../overloaded/bit_complement.carbon | 6 +- .../operators/overloaded/bit_or.carbon | 12 +- .../operators/overloaded/bit_xor.carbon | 12 +- .../testdata/operators/overloaded/dec.carbon | 6 +- .../testdata/operators/overloaded/div.carbon | 12 +- .../testdata/operators/overloaded/eq.carbon | 16 +- .../overloaded/fail_assign_non_ref.carbon | 12 +- .../overloaded/fail_error_recovery.carbon | 6 +- .../overloaded/fail_no_impl_for_arg.carbon | 12 +- .../operators/overloaded/implicit_as.carbon | 12 +- .../testdata/operators/overloaded/inc.carbon | 6 +- .../operators/overloaded/index.carbon | 28 +- .../operators/overloaded/left_shift.carbon | 12 +- .../testdata/operators/overloaded/mod.carbon | 12 +- .../testdata/operators/overloaded/mul.carbon | 12 +- .../operators/overloaded/negate.carbon | 6 +- .../overloaded/no_prelude/index.carbon | 6 +- .../operators/overloaded/ordered.carbon | 18 +- .../operators/overloaded/right_shift.carbon | 12 +- .../testdata/operators/overloaded/sub.carbon | 12 +- .../check/testdata/package_expr/syntax.carbon | 14 +- .../packages/implicit_imports_prelude.carbon | 6 +- .../check/testdata/packages/raw_core.carbon | 6 +- .../testdata/pointer/address_of_deref.carbon | 6 +- .../testdata/pointer/address_of_lvalue.carbon | 12 +- toolchain/check/testdata/pointer/basic.carbon | 6 +- .../check/testdata/pointer/import.carbon | 6 +- .../return/code_after_return_value.carbon | 6 +- .../fail_return_with_returned_var.carbon | 10 +- .../return/fail_returned_var_shadow.carbon | 16 +- .../no_prelude/import_convert_function.carbon | 142 +++--- .../check/testdata/return/returned_var.carbon | 10 +- .../testdata/return/returned_var_scope.carbon | 14 +- toolchain/check/testdata/return/struct.carbon | 6 +- toolchain/check/testdata/return/tuple.carbon | 8 +- toolchain/check/testdata/return/value.carbon | 6 +- .../struct/fail_non_member_access.carbon | 6 +- toolchain/check/testdata/struct/import.carbon | 32 +- .../testdata/struct/member_access.carbon | 6 +- .../check/testdata/struct/one_entry.carbon | 6 +- .../testdata/struct/partially_const.carbon | 8 +- .../testdata/struct/tuple_as_element.carbon | 8 +- .../check/testdata/struct/two_entries.carbon | 12 +- .../tuple/access/element_access.carbon | 6 +- .../tuple/access/fail_access_error.carbon | 8 +- .../tuple/access/fail_large_index.carbon | 6 +- .../access/fail_negative_indexing.carbon | 14 +- .../access/fail_non_deterministic_type.carbon | 10 +- .../tuple/access/fail_non_int_indexing.carbon | 8 +- .../tuple/access/fail_non_tuple_access.carbon | 8 +- .../access/fail_out_of_bound_access.carbon | 8 +- .../fail_out_of_bound_not_literal.carbon | 8 +- .../tuple/access/index_not_literal.carbon | 22 +- .../tuple/access/return_value_access.carbon | 6 +- .../tuple/fail_element_type_mismatch.carbon | 6 +- toolchain/check/testdata/tuple/import.carbon | 34 +- .../check/testdata/tuple/nested_tuple.carbon | 10 +- .../tuple/nested_tuple_in_place.carbon | 8 +- .../check/testdata/tuple/one_element.carbon | 6 +- .../check/testdata/tuple/two_elements.carbon | 12 +- .../testdata/where_expr/constraints.carbon | 20 +- .../testdata/where_expr/designator.carbon | 10 +- .../testdata/where_expr/dot_self_index.carbon | 84 ++-- .../testdata/where_expr/equal_rewrite.carbon | 428 +++++++++--------- .../testdata/where_expr/non_generic.carbon | 10 +- toolchain/sem_ir/ids.h | 45 ++ toolchain/sem_ir/inst_namer.cpp | 7 +- toolchain/sem_ir/stringify_type.cpp | 11 + toolchain/sem_ir/typed_insts.h | 18 +- 252 files changed, 2666 insertions(+), 2586 deletions(-) diff --git a/toolchain/check/context.h b/toolchain/check/context.h index db50476a47c5..575fc5115311 100644 --- a/toolchain/check/context.h +++ b/toolchain/check/context.h @@ -189,7 +189,7 @@ class Context { // An ongoing impl lookup, used to ensure termination. struct ImplLookupStackEntry { SemIR::ConstantId type_const_id; - SemIR::ConstantId interface_const_id; + SemIR::ConstantId query_facet_type_const_id; // The location of the impl being looked at for the stack entry. SemIR::InstId impl_loc = SemIR::InstId::None; }; diff --git a/toolchain/check/convert.cpp b/toolchain/check/convert.cpp index a6204e4ac929..133ebb635cc9 100644 --- a/toolchain/check/convert.cpp +++ b/toolchain/check/convert.cpp @@ -1043,14 +1043,19 @@ static auto PerformBuiltinConversion(Context& context, SemIR::LocId loc_id, return facet_value_inst_id; } - auto witness_inst_id = LookupImplWitness( + auto lookup_result = LookupImplWitness( context, loc_id, context.constant_values().Get(facet_value_inst_id), context.types().GetConstantId(target.type_id)); - if (witness_inst_id != SemIR::InstId::None) { - return AddInst(context, loc_id, - {.type_id = target.type_id, - .type_inst_id = lookup_inst_id, - .witness_inst_id = witness_inst_id}); + if (lookup_result.has_value()) { + if (lookup_result.has_error_value()) { + return SemIR::ErrorInst::SingletonInstId; + } else { + return AddInst( + context, loc_id, + {.type_id = target.type_id, + .type_inst_id = lookup_inst_id, + .witnesses_block_id = lookup_result.inst_block_id()}); + } } } @@ -1071,14 +1076,19 @@ static auto PerformBuiltinConversion(Context& context, SemIR::LocId loc_id, // (which has type `FacetType`), if the type satisfies the requirements of // the target `FacetType`, as determined by finding an impl witness. This // binds the value to the `FacetType` with a `FacetValue`. - auto witness_inst_id = LookupImplWitness( + auto lookup_result = LookupImplWitness( context, loc_id, sem_ir.constant_values().Get(lookup_inst_id), sem_ir.types().GetConstantId(target.type_id)); - if (witness_inst_id != SemIR::InstId::None) { - return AddInst(context, loc_id, - {.type_id = target.type_id, - .type_inst_id = lookup_inst_id, - .witness_inst_id = witness_inst_id}); + if (lookup_result.has_value()) { + if (lookup_result.has_error_value()) { + return SemIR::ErrorInst::SingletonInstId; + } else { + return AddInst( + context, loc_id, + {.type_id = target.type_id, + .type_inst_id = lookup_inst_id, + .witnesses_block_id = lookup_result.inst_block_id()}); + } } } } diff --git a/toolchain/check/eval_inst.cpp b/toolchain/check/eval_inst.cpp index 16d81374c041..f42c97327e36 100644 --- a/toolchain/check/eval_inst.cpp +++ b/toolchain/check/eval_inst.cpp @@ -171,8 +171,10 @@ auto EvalConstantInst(Context& context, SemIRLoc /*loc*/, SemIR::FacetAccessWitness inst) -> ConstantEvalResult { if (auto facet_value = context.insts().TryGetAs( inst.facet_value_inst_id)) { + auto impl_witness_inst_id = context.inst_blocks().Get( + facet_value->witnesses_block_id)[inst.index.index]; return ConstantEvalResult::Existing( - context.constant_values().Get(facet_value->witness_inst_id)); + context.constant_values().Get(impl_witness_inst_id)); } return ConstantEvalResult::NewSamePhase(inst); } @@ -200,14 +202,6 @@ auto EvalConstantInst(Context& context, SemIRLoc loc, context.insts().TryGetAs(inst.witness_id)) { auto elements = context.inst_blocks().Get(witness->elements_id); auto index = static_cast(inst.index.index); - // TODO: Remove this block when LookupImplWitness returns all the witnesses - // for a facet type instead of just one. We just don't want to introduce - // crashes in the meantime. - if (index >= elements.size()) { - context.TODO(loc, - "incorrect witness for multiple interfaces in a facet type"); - return ConstantEvalResult::Error; - } CARBON_CHECK(index < elements.size(), "Access out of bounds."); auto element = elements[index]; if (!element.has_value()) { diff --git a/toolchain/check/impl_lookup.cpp b/toolchain/check/impl_lookup.cpp index 12e759eecb82..0375cc7138c5 100644 --- a/toolchain/check/impl_lookup.cpp +++ b/toolchain/check/impl_lookup.cpp @@ -20,7 +20,7 @@ namespace Carbon::Check { static auto FindAssociatedImportIRs(Context& context, SemIR::ConstantId type_const_id, - SemIR::ConstantId interface_const_id) + SemIR::ConstantId query_facet_type_const_id) -> llvm::SmallVector { llvm::SmallVector result; @@ -40,7 +40,8 @@ static auto FindAssociatedImportIRs(Context& context, llvm::SmallVector worklist; worklist.push_back(context.constant_values().GetInstId(type_const_id)); - worklist.push_back(context.constant_values().GetInstId(interface_const_id)); + worklist.push_back( + context.constant_values().GetInstId(query_facet_type_const_id)); // Push the contents of an instruction block onto our worklist. auto push_block = [&](SemIR::InstBlockId block_id) { @@ -121,24 +122,24 @@ static auto FindAndDiagnoseImplLookupCycle( Context& context, const llvm::SmallVector& stack, SemIR::LocId loc_id, SemIR::ConstantId type_const_id, - SemIR::ConstantId interface_const_id) -> bool { + SemIR::ConstantId query_facet_type_const_id) -> bool { // Deduction of the interface parameters can do further impl lookups, and we // need to ensure we terminate. // // https://docs.carbon-lang.dev/docs/design/generics/details.html#acyclic-rule // - We look for violations of the acyclic rule by seeing if a previous lookup // had all the same type inputs. - // - The `interface_const_id` encodes the entire facet type being looked up, - // including any specific parameters for a generic interface. + // - The `query_facet_type_const_id` encodes the entire facet type being + // looked up, including any specific parameters for a generic interface. // // TODO: Implement the termination rule, which requires looking at the // complexity of the types on the top of (or throughout?) the stack: // https://docs.carbon-lang.dev/docs/design/generics/details.html#termination-rule for (auto [i, entry] : llvm::enumerate(stack)) { if (entry.type_const_id == type_const_id && - entry.interface_const_id == interface_const_id) { + entry.query_facet_type_const_id == query_facet_type_const_id) { auto facet_type_type_id = - context.types().GetTypeIdForTypeConstantId(interface_const_id); + context.types().GetTypeIdForTypeConstantId(query_facet_type_const_id); CARBON_DIAGNOSTIC(ImplLookupCycle, Error, "cycle found in search for impl of {0} for type {1}", SemIR::TypeId, SemIR::TypeId); @@ -161,16 +162,16 @@ static auto FindAndDiagnoseImplLookupCycle( // Gets the set of `SpecificInterface`s that are required by a facet type // (as a constant value). -static auto GetInterfacesFromConstantId(Context& context, SemIR::LocId loc_id, - SemIR::ConstantId interface_const_id, - bool& has_other_requirements) +static auto GetInterfacesFromConstantId( + Context& context, SemIR::ConstantId query_facet_type_const_id, + bool& has_other_requirements) -> llvm::SmallVector { - // The `interface_const_id` is a constant value for some facet type. We do - // this long chain of steps to go from that constant value to the + // The `query_facet_type_const_id` is a constant value for some facet type. We + // do this long chain of steps to go from that constant value to the // `FacetTypeId` found on the `FacetType` instruction of this constant value, // and finally to the `CompleteFacetType`. auto facet_type_inst_id = - context.constant_values().GetInstId(interface_const_id); + context.constant_values().GetInstId(query_facet_type_const_id); auto facet_type_inst = context.insts().GetAs(facet_type_inst_id); auto facet_type_id = facet_type_inst.facet_type_id; @@ -185,16 +186,6 @@ static auto GetInterfacesFromConstantId(Context& context, SemIR::LocId loc_id, has_other_requirements = context.facet_types().Get(facet_type_id).other_requirements; - - if (complete_facet_type.required_interfaces.empty()) { - // This should never happen - a FacetType either requires or is bounded by - // some `.Self impls` clause. Otherwise you would just have `type` (aka - // `TypeType` in the toolchain implementation) which is not a facet type. - context.TODO(loc_id, - "impl lookup for a FacetType with no interface (using " - "`where .Self impls ...` instead?)"); - return {}; - } return complete_facet_type.required_interfaces; } @@ -319,15 +310,16 @@ static auto FindWitnessInFacet( if (complete_facet_type_id.has_value()) { const auto& complete_facet_type = context.complete_facet_types().Get(complete_facet_type_id); - for (auto interface : complete_facet_type.required_interfaces) { + for (auto [index, interface] : + llvm::enumerate(complete_facet_type.required_interfaces)) { if (interface == specific_interface) { - // TODO: Need to get the right witness when there are multiple. return GetOrAddInst( context, loc_id, SemIR::FacetAccessWitness{ .type_id = GetSingletonType( context, SemIR::WitnessType::SingletonInstId), - .facet_value_inst_id = facet_inst_id}); + .facet_value_inst_id = facet_inst_id, + .index = SemIR::ElementIndex(index)}); } } } @@ -353,13 +345,14 @@ static auto FindWitnessInImpls( auto LookupImplWitness(Context& context, SemIR::LocId loc_id, SemIR::ConstantId type_const_id, - SemIR::ConstantId interface_const_id) -> SemIR::InstId { + SemIR::ConstantId query_facet_type_const_id) + -> SemIR::InstBlockIdOrError { if (type_const_id == SemIR::ErrorInst::SingletonConstantId || - interface_const_id == SemIR::ErrorInst::SingletonConstantId) { - return SemIR::ErrorInst::SingletonInstId; + query_facet_type_const_id == SemIR::ErrorInst::SingletonConstantId) { + return SemIR::InstBlockIdOrError::MakeError(); } - auto import_irs = - FindAssociatedImportIRs(context, type_const_id, interface_const_id); + auto import_irs = FindAssociatedImportIRs(context, type_const_id, + query_facet_type_const_id); for (auto import_ir : import_irs) { // TODO: Instead of importing all impls, only import ones that are in some // way connected to this query. @@ -373,21 +366,19 @@ auto LookupImplWitness(Context& context, SemIR::LocId loc_id, if (FindAndDiagnoseImplLookupCycle(context, context.impl_lookup_stack(), loc_id, type_const_id, - interface_const_id)) { - return SemIR::ErrorInst::SingletonInstId; + query_facet_type_const_id)) { + return SemIR::InstBlockIdOrError::MakeError(); } bool has_other_requirements = false; auto interfaces = GetInterfacesFromConstantId( - context, loc_id, interface_const_id, has_other_requirements); - if (interfaces.empty()) { - // TODO: Remove this when the context.TODO() is removed in - // GetInterfacesFromConstantId. - return SemIR::InstId::None; - } + context, query_facet_type_const_id, has_other_requirements); if (has_other_requirements) { // TODO: Remove this when other requirements go away. - return SemIR::InstId::None; + return SemIR::InstBlockId::None; + } + if (interfaces.empty()) { + return SemIR::InstBlockId::Empty; } llvm::SmallVector result_witness_ids; @@ -395,7 +386,7 @@ auto LookupImplWitness(Context& context, SemIR::LocId loc_id, auto& stack = context.impl_lookup_stack(); stack.push_back({ .type_const_id = type_const_id, - .interface_const_id = interface_const_id, + .query_facet_type_const_id = query_facet_type_const_id, }); // We need to find a witness for each interface in `interfaces`. We return // them in the same order as they are found in the `CompleteFacetType`, which @@ -425,24 +416,10 @@ auto LookupImplWitness(Context& context, SemIR::LocId loc_id, // through some impl (TODO: or directly on the type itself if `type_const_id` // is a facet type). if (result_witness_ids.size() != interfaces.size()) { - return SemIR::InstId::None; + return SemIR::InstBlockId::None; } - // TODO: Return the whole set as a (newly introduced) FacetTypeWitness - // instruction. For now we just return a single witness instruction which - // doesn't matter because it essentially goes unused anyway. So far this - // method is just used as a boolean test in cases where there can be more than - // one interface in the query facet type: - // - Concrete facet values (`({} as C) as (C as (A & B))`) are looked through - // to the implementing type (typically a ClassType) to access members, and - // thus don't use the witnesses in the facet value. - // - Compound member lookup (`G.(A & B).F()`) uses name lookup to find the - // interface first, then does impl lookup for a witness with a single - // interface query. It's also only possible on concrete facet values so far - // (see below). - // - Qualified name lookup on symbolic facet values (`T:! A & B`) doesn't work - // at all, so never gets to looking for a witness. - return result_witness_ids[0]; + return context.inst_blocks().AddCanonical(result_witness_ids); } } // namespace Carbon::Check diff --git a/toolchain/check/impl_lookup.h b/toolchain/check/impl_lookup.h index 8b93da76a249..c2c02e3c1a0b 100644 --- a/toolchain/check/impl_lookup.h +++ b/toolchain/check/impl_lookup.h @@ -10,12 +10,27 @@ namespace Carbon::Check { -// Looks up the witness to use for a particular type and interface. Returns the -// witness, or `InstId::None` if the type is not known to implement the -// interface. +// Looks up the witnesses to use for a particular type and a facet type naming a +// set of interfaces required to be implemented for that type, as well as +// possible constraints on those interfaces. +// +// The return value is one of: +// - An InstBlockId value, containing an `ImplWitness` instruction for each +// required interface in the `query_facet_type_const_id`. This verifies the +// facet type is satisfied for the type in `type_const_id`, and provides a +// witness for accessing the impl of each interface. +// +// - `InstBlockId::None`, indicating lookup failed for at least one required +// interface in the `query_facet_type_const_id`. The facet type is not +// satisfied for the type in `type_const_id`. This represents lookup failure, +// but is not an error, so no diagnostic is emitted. +// +// - An error value, indicating the program is invalid and a diagonstic has been +// produced, either in this function or before. auto LookupImplWitness(Context& context, SemIR::LocId loc_id, SemIR::ConstantId type_const_id, - SemIR::ConstantId interface_const_id) -> SemIR::InstId; + SemIR::ConstantId query_facet_type_const_id) + -> SemIR::InstBlockIdOrError; } // namespace Carbon::Check diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 69083657f619..eb75ca9c11d5 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -2438,7 +2438,8 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, resolver, {.type_id = GetSingletonType(resolver.local_context(), SemIR::WitnessType::SingletonInstId), - .facet_value_inst_id = facet_value_inst_id}); + .facet_value_inst_id = facet_value_inst_id, + .index = inst.index}); } static auto TryResolveTypedInst(ImportRefResolver& resolver, @@ -2488,7 +2489,7 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::FacetValue inst) -> ResolveResult { auto type_id = GetLocalConstantId(resolver, inst.type_id); auto type_inst_id = GetLocalConstantInstId(resolver, inst.type_inst_id); - auto witness_inst_id = GetLocalConstantInstId(resolver, inst.witness_inst_id); + auto witnesses = GetLocalInstBlockContents(resolver, inst.witnesses_block_id); if (resolver.HasNewWork()) { return ResolveResult::Retry(); } @@ -2498,7 +2499,8 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, {.type_id = resolver.local_context().types().GetTypeIdForTypeConstantId(type_id), .type_inst_id = type_inst_id, - .witness_inst_id = witness_inst_id}); + .witnesses_block_id = GetLocalCanonicalInstBlockId( + resolver, inst.witnesses_block_id, witnesses)}); } static auto TryResolveTypedInst(ImportRefResolver& resolver, diff --git a/toolchain/check/interface.cpp b/toolchain/check/interface.cpp index 1417617fa18d..910a272b8d5c 100644 --- a/toolchain/check/interface.cpp +++ b/toolchain/check/interface.cpp @@ -88,11 +88,13 @@ static auto GetSelfFacet(Context& context, // TODO: Pass this in instead of creating it here. The caller sometimes // already has a facet value. auto type_inst_id = context.types().GetInstId(self_type_id); + auto witnesses_block_id = + context.inst_blocks().AddCanonical({self_witness_id}); auto self_value_const_id = TryEvalInst(context, SemIR::InstId::None, SemIR::FacetValue{.type_id = self_facet_type_id, .type_inst_id = type_inst_id, - .witness_inst_id = self_witness_id}); + .witnesses_block_id = witnesses_block_id}); return context.constant_values().GetInstId(self_value_const_id); } diff --git a/toolchain/check/member_access.cpp b/toolchain/check/member_access.cpp index 9447aec22b40..d84ad27e580a 100644 --- a/toolchain/check/member_access.cpp +++ b/toolchain/check/member_access.cpp @@ -193,10 +193,10 @@ static auto PerformImplLookup( // An associated entity is always associated with a single interface. CARBON_CHECK(interface_type); auto self_type_id = context.types().GetTypeIdForTypeConstantId(type_const_id); - auto witness_id = + auto lookup_result = LookupImplWitness(context, loc_id, type_const_id, assoc_type.interface_type_id.AsConstantId()); - if (!witness_id.has_value()) { + if (!lookup_result.has_value()) { auto interface_type_id = GetInterfaceType( context, interface_type->interface_id, interface_type->specific_id); if (missing_impl_diagnoser) { @@ -219,6 +219,19 @@ static auto PerformImplLookup( } return SemIR::ErrorInst::SingletonInstId; } + + // The query facet type given to `LookupImplWitness()` had only a single + // interface in it, so the returned witness set will have the same. Convert + // from the InstBlockId to the single ImplWitness instruction. + auto witness_id = SemIR::InstId::None; + if (lookup_result.has_error_value()) { + witness_id = SemIR::ErrorInst::SingletonInstId; + } else { + auto witnesses = context.inst_blocks().Get(lookup_result.inst_block_id()); + CARBON_CHECK(witnesses.size() == 1); + witness_id = witnesses[0]; + } + return AccessMemberOfImplWitness(context, loc_id, self_type_id, witness_id, interface_type->specific_id, member_id); } @@ -311,19 +324,24 @@ static auto LookupMemberNameInScope(Context& context, SemIR::LocId loc_id, context.facet_types().Get(facet_type->facet_type_id); // Witness that `T` implements the `*assoc_interface`. SemIR::InstId witness_inst_id = SemIR::InstId::None; - for (auto base_interface : facet_type_info.impls_constraints) { + // TODO: This assumes `impls_constraints` are in the same order as + // `CompleteFacetType::required_interfaces`, and come first in the list. + // Once we add support for named constraints there may be more + // interfaces in the `CompleteFacetType`, and we will require those + // additional interfaces in the `CompleteFacetType` to come after the + // ones we see in `impls_constraints` in order to not invalidate the + // index computed here. + for (auto [index, base_interface] : + llvm::enumerate(facet_type_info.impls_constraints)) { // Get the witness that `T` implements `base_type_id`. if (base_interface == *assoc_interface) { - witness_inst_id = GetOrAddInst( + witness_inst_id = GetOrAddInst( context, loc_id, - {.type_id = GetSingletonType( - context, SemIR::WitnessType::SingletonInstId), - .facet_value_inst_id = base_id}); - // TODO: Result will eventually be a facet type witness instead of - // an interface witness. Will need to use the index - // `*assoc_interface` was found in - // `facet_type_info.impls_constraints` to get the correct interface - // witness out. + SemIR::FacetAccessWitness{ + .type_id = GetSingletonType( + context, SemIR::WitnessType::SingletonInstId), + .facet_value_inst_id = base_id, + .index = SemIR::ElementIndex(index)}); break; } } @@ -594,11 +612,14 @@ auto PerformCompoundMemberAccess(Context& context, SemIR::LocId loc_id, .facet_value_inst_id = facet_inst_id}); auto self_type_id = context.types().GetTypeIdForTypeConstantId(self_type_const_id); - auto witness_id = GetOrAddInst( - context, loc_id, - {.type_id = - GetSingletonType(context, SemIR::WitnessType::SingletonInstId), - .facet_value_inst_id = facet_inst_id}); + auto witness_id = + GetOrAddInst(context, loc_id, + SemIR::FacetAccessWitness{ + .type_id = GetSingletonType( + context, SemIR::WitnessType::SingletonInstId), + .facet_value_inst_id = facet_inst_id, + // There's only one interface in this facet type. + .index = SemIR::ElementIndex(0)}); // Before we can access the element of the witness, we need to figure out // the type of that element. It depends on the self type and the specific // interface. diff --git a/toolchain/check/testdata/array/array_vs_tuple.carbon b/toolchain/check/testdata/array/array_vs_tuple.carbon index e2e7fe571814..53874f23e3d2 100644 --- a/toolchain/check/testdata/array/array_vs_tuple.carbon +++ b/toolchain/check/testdata/array/array_vs_tuple.carbon @@ -32,8 +32,8 @@ fn G() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -79,7 +79,7 @@ fn G() { // CHECK:STDOUT: %int_2.loc13_30: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc13_33: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc13_34.1: %tuple.type.37f = tuple_literal (%int_1.loc13_27, %int_2.loc13_30, %int_3.loc13_33) -// CHECK:STDOUT: %impl.elem0.loc13_34.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_34.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_34.1: = bound_method %int_1.loc13_27, %impl.elem0.loc13_34.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc13_34.1: = specific_function %impl.elem0.loc13_34.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_34.2: = bound_method %int_1.loc13_27, %specific_fn.loc13_34.1 [concrete = constants.%bound_method.9a1] @@ -88,7 +88,7 @@ fn G() { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc13_34.3: ref %i32 = array_index %a.var, %int_0 // CHECK:STDOUT: %.loc13_34.4: init %i32 = initialize_from %.loc13_34.2 to %.loc13_34.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc13_34.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_34.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_34.3: = bound_method %int_2.loc13_30, %impl.elem0.loc13_34.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc13_34.2: = specific_function %impl.elem0.loc13_34.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_34.4: = bound_method %int_2.loc13_30, %specific_fn.loc13_34.2 [concrete = constants.%bound_method.b92] @@ -97,7 +97,7 @@ fn G() { // CHECK:STDOUT: %int_1.loc13_34: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc13_34.6: ref %i32 = array_index %a.var, %int_1.loc13_34 // CHECK:STDOUT: %.loc13_34.7: init %i32 = initialize_from %.loc13_34.5 to %.loc13_34.6 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc13_34.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_34.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_34.5: = bound_method %int_3.loc13_33, %impl.elem0.loc13_34.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc13_34.3: = specific_function %impl.elem0.loc13_34.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_34.6: = bound_method %int_3.loc13_33, %specific_fn.loc13_34.3 [concrete = constants.%bound_method.047] @@ -125,7 +125,7 @@ fn G() { // CHECK:STDOUT: %int_2.loc14: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc14: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc14_36.1: %tuple.type.37f = tuple_literal (%int_1.loc14, %int_2.loc14, %int_3.loc14) -// CHECK:STDOUT: %impl.elem0.loc14_36.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_36.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_36.1: = bound_method %int_1.loc14, %impl.elem0.loc14_36.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_36.1: = specific_function %impl.elem0.loc14_36.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_36.2: = bound_method %int_1.loc14, %specific_fn.loc14_36.1 [concrete = constants.%bound_method.9a1] @@ -133,7 +133,7 @@ fn G() { // CHECK:STDOUT: %.loc14_36.2: init %i32 = converted %int_1.loc14, %int.convert_checked.loc14_36.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %b.var, element0 // CHECK:STDOUT: %.loc14_36.3: init %i32 = initialize_from %.loc14_36.2 to %tuple.elem0 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_36.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_36.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_36.3: = bound_method %int_2.loc14, %impl.elem0.loc14_36.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_36.2: = specific_function %impl.elem0.loc14_36.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_36.4: = bound_method %int_2.loc14, %specific_fn.loc14_36.2 [concrete = constants.%bound_method.b92] @@ -141,7 +141,7 @@ fn G() { // CHECK:STDOUT: %.loc14_36.4: init %i32 = converted %int_2.loc14, %int.convert_checked.loc14_36.2 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %b.var, element1 // CHECK:STDOUT: %.loc14_36.5: init %i32 = initialize_from %.loc14_36.4 to %tuple.elem1 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc14_36.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_36.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_36.5: = bound_method %int_3.loc14, %impl.elem0.loc14_36.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc14_36.3: = specific_function %impl.elem0.loc14_36.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_36.6: = bound_method %int_3.loc14, %specific_fn.loc14_36.3 [concrete = constants.%bound_method.047] diff --git a/toolchain/check/testdata/array/assign_return_value.carbon b/toolchain/check/testdata/array/assign_return_value.carbon index d95f749ebee4..d0c9d135c571 100644 --- a/toolchain/check/testdata/array/assign_return_value.carbon +++ b/toolchain/check/testdata/array/assign_return_value.carbon @@ -30,8 +30,8 @@ fn Run() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -77,7 +77,7 @@ fn Run() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc11_30.1: %tuple.type.985 = tuple_literal (%int_0) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_30.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/array/assign_var.carbon b/toolchain/check/testdata/array/assign_var.carbon index 6b26e07fc9ab..85274facfcc2 100644 --- a/toolchain/check/testdata/array/assign_var.carbon +++ b/toolchain/check/testdata/array/assign_var.carbon @@ -27,8 +27,8 @@ var b: array(i32, 3) = a; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -96,7 +96,7 @@ var b: array(i32, 3) = a; // CHECK:STDOUT: %int_2.loc11: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_34.1: %tuple.type.37f = tuple_literal (%int_1.loc11, %int_2.loc11, %int_3) -// CHECK:STDOUT: %impl.elem0.loc11_34.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_34.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_34.1: = bound_method %int_1.loc11, %impl.elem0.loc11_34.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_34.1: = specific_function %impl.elem0.loc11_34.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_34.2: = bound_method %int_1.loc11, %specific_fn.loc11_34.1 [concrete = constants.%bound_method.9a1] @@ -104,7 +104,7 @@ var b: array(i32, 3) = a; // CHECK:STDOUT: %.loc11_34.2: init %i32 = converted %int_1.loc11, %int.convert_checked.loc11_34.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc11: ref %i32 = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_34.3: init %i32 = initialize_from %.loc11_34.2 to %tuple.elem0.loc11 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc11_34.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_34.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_34.3: = bound_method %int_2.loc11, %impl.elem0.loc11_34.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_34.2: = specific_function %impl.elem0.loc11_34.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_34.4: = bound_method %int_2.loc11, %specific_fn.loc11_34.2 [concrete = constants.%bound_method.b92] @@ -112,7 +112,7 @@ var b: array(i32, 3) = a; // CHECK:STDOUT: %.loc11_34.4: init %i32 = converted %int_2.loc11, %int.convert_checked.loc11_34.2 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc11: ref %i32 = tuple_access file.%a.var, element1 // CHECK:STDOUT: %.loc11_34.5: init %i32 = initialize_from %.loc11_34.4 to %tuple.elem1.loc11 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc11_34.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_34.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_34.5: = bound_method %int_3, %impl.elem0.loc11_34.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc11_34.3: = specific_function %impl.elem0.loc11_34.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_34.6: = bound_method %int_3, %specific_fn.loc11_34.3 [concrete = constants.%bound_method.047] diff --git a/toolchain/check/testdata/array/base.carbon b/toolchain/check/testdata/array/base.carbon index ae221e1e3fdb..537839b6e88d 100644 --- a/toolchain/check/testdata/array/base.carbon +++ b/toolchain/check/testdata/array/base.carbon @@ -27,8 +27,8 @@ var c: array((), 5) = ((), (), (), (), (),); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -114,7 +114,7 @@ var c: array((), 5) = ((), (), (), (), (),); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.985 = tuple_literal (%int_1.loc11) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_1.loc11, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_1.loc11, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/array/canonicalize_index.carbon b/toolchain/check/testdata/array/canonicalize_index.carbon index fac92a130d8f..cbeb881ba6c9 100644 --- a/toolchain/check/testdata/array/canonicalize_index.carbon +++ b/toolchain/check/testdata/array/canonicalize_index.carbon @@ -34,8 +34,8 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f7f: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.f7f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2b8: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.2b8 [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn.b6f [concrete] @@ -47,8 +47,8 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e25: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.e25 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ffe: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.ffe [concrete] // CHECK:STDOUT: %Convert.bound.2d6: = bound_method %int_3.822, %Convert.960 [concrete] // CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.c6f: = bound_method %int_3.822, %Convert.specific_fn.8a8 [concrete] @@ -64,8 +64,8 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %impl_witness.8da2: = impl_witness (imports.%Core.import_ref.823), @impl.750(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.e06: type = fn_type @Convert.9, @impl.750(%int_32) [concrete] // CHECK:STDOUT: %Convert.47f: %Convert.type.e06 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.84b: %ImplicitAs.type.2fd = facet_value %u32, %impl_witness.8da2 [concrete] -// CHECK:STDOUT: %.88a: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.84b [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.bc2: %ImplicitAs.type.2fd = facet_value %u32, (%impl_witness.8da2) [concrete] +// CHECK:STDOUT: %.883: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.bc2 [concrete] // CHECK:STDOUT: %Convert.bound.258: = bound_method %int_3.d14, %Convert.47f [concrete] // CHECK:STDOUT: %Convert.specific_fn.2eb: = specific_function %Convert.47f, @Convert.9(%int_32) [concrete] // CHECK:STDOUT: %bound_method.3a6: = bound_method %int_3.d14, %Convert.specific_fn.2eb [concrete] @@ -144,14 +144,14 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %Add.ref: %Add.type.b1f = name_ref Add, %Add.decl [concrete = constants.%Add] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc14_23: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_23: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_23.1: = bound_method %int_1, %impl.elem0.loc14_23 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_23: = specific_function %impl.elem0.loc14_23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc14_23.2: = bound_method %int_1, %specific_fn.loc14_23 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc14_23: init %i32 = call %bound_method.loc14_23.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_23.1: %i32 = value_of_initializer %int.convert_checked.loc14_23 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_23.2: %i32 = converted %int_1, %.loc14_23.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_26: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_26: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_26.1: = bound_method %int_2, %impl.elem0.loc14_26 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_26: = specific_function %impl.elem0.loc14_26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc14_26.2: = bound_method %int_2, %specific_fn.loc14_26 [concrete = constants.%bound_method.b92] @@ -159,7 +159,7 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %.loc14_26.1: %i32 = value_of_initializer %int.convert_checked.loc14_26 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc14_26.2: %i32 = converted %int_2, %.loc14_26.1 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %int.sadd: init %i32 = call %Add.ref(%.loc14_23.2, %.loc14_26.2) [concrete = constants.%int_3.822] -// CHECK:STDOUT: %impl.elem0.loc14_27: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0.loc14_27: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc14_27.1: = bound_method %int.sadd, %impl.elem0.loc14_27 [concrete = constants.%Convert.bound.2d6] // CHECK:STDOUT: %specific_fn.loc14_27: = specific_function %impl.elem0.loc14_27, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc14_27.2: = bound_method %int.sadd, %specific_fn.loc14_27 [concrete = constants.%bound_method.c6f] @@ -190,7 +190,7 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %i32.loc16: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %ConvertToU32.ref: %ConvertToU32.type = name_ref ConvertToU32, %ConvertToU32.decl [concrete = constants.%ConvertToU32] // CHECK:STDOUT: %int_3.loc16: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc16_32: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16_32: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_32.1: = bound_method %int_3.loc16, %impl.elem0.loc16_32 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc16_32: = specific_function %impl.elem0.loc16_32, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc16_32.2: = bound_method %int_3.loc16, %specific_fn.loc16_32 [concrete = constants.%bound_method.047] @@ -198,7 +198,7 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %.loc16_32.1: %i32 = value_of_initializer %int.convert_checked.loc16_32 [concrete = constants.%int_3.822] // CHECK:STDOUT: %.loc16_32.2: %i32 = converted %int_3.loc16, %.loc16_32.1 [concrete = constants.%int_3.822] // CHECK:STDOUT: %int.convert_checked.loc16_33.1: init %u32 = call %ConvertToU32.ref(%.loc16_32.2) [concrete = constants.%int_3.d14] -// CHECK:STDOUT: %impl.elem0.loc16_33: %.88a = impl_witness_access constants.%impl_witness.8da2, element0 [concrete = constants.%Convert.47f] +// CHECK:STDOUT: %impl.elem0.loc16_33: %.883 = impl_witness_access constants.%impl_witness.8da2, element0 [concrete = constants.%Convert.47f] // CHECK:STDOUT: %bound_method.loc16_33.1: = bound_method %int.convert_checked.loc16_33.1, %impl.elem0.loc16_33 [concrete = constants.%Convert.bound.258] // CHECK:STDOUT: %specific_fn.loc16_33: = specific_function %impl.elem0.loc16_33, @Convert.9(constants.%int_32) [concrete = constants.%Convert.specific_fn.2eb] // CHECK:STDOUT: %bound_method.loc16_33.2: = bound_method %int.convert_checked.loc16_33.1, %specific_fn.loc16_33 [concrete = constants.%bound_method.3a6] @@ -223,7 +223,7 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %int_2.loc14_36: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc14_40.1: %tuple.type = tuple_literal (%int_1.loc14_33, %int_2.loc14_36, %int_3) -// CHECK:STDOUT: %impl.elem0.loc14_40.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_40.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_40.1: = bound_method %int_1.loc14_33, %impl.elem0.loc14_40.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_40.1: = specific_function %impl.elem0.loc14_40.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc14_40.2: = bound_method %int_1.loc14_33, %specific_fn.loc14_40.1 [concrete = constants.%bound_method.9a1] @@ -232,7 +232,7 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc14_40.3: ref %i32 = array_index file.%a.var, %int_0 // CHECK:STDOUT: %.loc14_40.4: init %i32 = initialize_from %.loc14_40.2 to %.loc14_40.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_40.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_40.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_40.3: = bound_method %int_2.loc14_36, %impl.elem0.loc14_40.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_40.2: = specific_function %impl.elem0.loc14_40.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc14_40.4: = bound_method %int_2.loc14_36, %specific_fn.loc14_40.2 [concrete = constants.%bound_method.b92] @@ -241,7 +241,7 @@ let c: array(i32, ConvertToU32(3))* = &a; // CHECK:STDOUT: %int_1.loc14_40: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_40.6: ref %i32 = array_index file.%a.var, %int_1.loc14_40 // CHECK:STDOUT: %.loc14_40.7: init %i32 = initialize_from %.loc14_40.5 to %.loc14_40.6 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc14_40.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_40.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_40.5: = bound_method %int_3, %impl.elem0.loc14_40.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc14_40.3: = specific_function %impl.elem0.loc14_40.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc14_40.6: = bound_method %int_3, %specific_fn.loc14_40.3 [concrete = constants.%bound_method.047] diff --git a/toolchain/check/testdata/array/fail_bound_negative.carbon b/toolchain/check/testdata/array/fail_bound_negative.carbon index 6260d6b7f3ce..37e932ae1b79 100644 --- a/toolchain/check/testdata/array/fail_bound_negative.carbon +++ b/toolchain/check/testdata/array/fail_bound_negative.carbon @@ -31,8 +31,8 @@ var a: array(i32, Negate(1)); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f7f: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.f7f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2b8: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.2b8 [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn.b6f [concrete] @@ -41,8 +41,8 @@ var a: array(i32, Negate(1)); // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e25: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.e25 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ffe: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.ffe [concrete] // CHECK:STDOUT: %Convert.bound.75d: = bound_method %int_-1.251, %Convert.960 [concrete] // CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.245: = bound_method %int_-1.251, %Convert.specific_fn.8a8 [concrete] @@ -92,7 +92,7 @@ var a: array(i32, Negate(1)); // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %Negate.ref: %Negate.type.15b = name_ref Negate, %Negate.decl [concrete = constants.%Negate] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc17_26: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_26: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_26.1: = bound_method %int_1, %impl.elem0.loc17_26 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc17_26: = specific_function %impl.elem0.loc17_26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc17_26.2: = bound_method %int_1, %specific_fn.loc17_26 [concrete = constants.%bound_method.9a1] @@ -100,7 +100,7 @@ var a: array(i32, Negate(1)); // CHECK:STDOUT: %.loc17_26.1: %i32 = value_of_initializer %int.convert_checked.loc17_26 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_26.2: %i32 = converted %int_1, %.loc17_26.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %int.snegate: init %i32 = call %Negate.ref(%.loc17_26.2) [concrete = constants.%int_-1.251] -// CHECK:STDOUT: %impl.elem0.loc17_27: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0.loc17_27: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc17_27.1: = bound_method %int.snegate, %impl.elem0.loc17_27 [concrete = constants.%Convert.bound.75d] // CHECK:STDOUT: %specific_fn.loc17_27: = specific_function %impl.elem0.loc17_27, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc17_27.2: = bound_method %int.snegate, %specific_fn.loc17_27 [concrete = constants.%bound_method.245] diff --git a/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon b/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon index a73c8cddda43..685f7a80e3fc 100644 --- a/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon +++ b/toolchain/check/testdata/array/fail_out_of_bound_non_literal.carbon @@ -31,8 +31,8 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -94,7 +94,7 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %int_2.loc11_28: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc11: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_32.1: %tuple.type = tuple_literal (%int_1.loc11_25, %int_2.loc11_28, %int_3.loc11) -// CHECK:STDOUT: %impl.elem0.loc11_32.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_32.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_32.1: = bound_method %int_1.loc11_25, %impl.elem0.loc11_32.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_32.1: = specific_function %impl.elem0.loc11_32.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_32.2: = bound_method %int_1.loc11_25, %specific_fn.loc11_32.1 [concrete = constants.%bound_method.9a1] @@ -103,7 +103,7 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc11_32.3: ref %i32 = array_index file.%a.var, %int_0 // CHECK:STDOUT: %.loc11_32.4: init %i32 = initialize_from %.loc11_32.2 to %.loc11_32.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc11_32.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_32.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_32.3: = bound_method %int_2.loc11_28, %impl.elem0.loc11_32.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_32.2: = specific_function %impl.elem0.loc11_32.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_32.4: = bound_method %int_2.loc11_28, %specific_fn.loc11_32.2 [concrete = constants.%bound_method.b92] @@ -112,7 +112,7 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %int_1.loc11_32: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_32.6: ref %i32 = array_index file.%a.var, %int_1.loc11_32 // CHECK:STDOUT: %.loc11_32.7: init %i32 = initialize_from %.loc11_32.5 to %.loc11_32.6 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc11_32.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_32.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_32.5: = bound_method %int_3.loc11, %impl.elem0.loc11_32.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc11_32.3: = specific_function %impl.elem0.loc11_32.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_32.6: = bound_method %int_3.loc11, %specific_fn.loc11_32.3 [concrete = constants.%bound_method.047] @@ -132,7 +132,7 @@ var b: i32 = a[{.index = 3}.index]; // CHECK:STDOUT: %.loc16_28.1: Core.IntLiteral = struct_access %.loc16_27.2, element0 [concrete = constants.%int_3.1ba] // 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: %impl.elem0.loc16: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_28.1: = bound_method %.loc16_28.1, %impl.elem0.loc16 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_28.2: = bound_method %.loc16_28.1, %specific_fn.loc16 [concrete = constants.%bound_method.047] diff --git a/toolchain/check/testdata/array/fail_type_mismatch.carbon b/toolchain/check/testdata/array/fail_type_mismatch.carbon index c4427a957906..608e31767aef 100644 --- a/toolchain/check/testdata/array/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/array/fail_type_mismatch.carbon @@ -57,8 +57,8 @@ var d: array(i32, 3) = t2; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -173,7 +173,7 @@ var d: array(i32, 3) = t2; // CHECK:STDOUT: %str.loc18_28: String = string_literal "Hello" [concrete = constants.%str.ef1] // CHECK:STDOUT: %str.loc18_37: String = string_literal "World" [concrete = constants.%str.abb] // CHECK:STDOUT: %.loc18_44.1: %tuple.type.b0f = tuple_literal (%int_1.loc18, %str.loc18_28, %str.loc18_37) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_44.1: = bound_method %int_1.loc18, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_44.2: = bound_method %int_1.loc18, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/array/function_param.carbon b/toolchain/check/testdata/array/function_param.carbon index c3d6c5d9ac34..e2061fcf08c5 100644 --- a/toolchain/check/testdata/array/function_param.carbon +++ b/toolchain/check/testdata/array/function_param.carbon @@ -36,8 +36,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -125,7 +125,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc16_20.1: %tuple.type = tuple_literal (%int_1.loc16_13, %int_2.loc16_16, %int_3) // CHECK:STDOUT: %int_1.loc16_23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16_20.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16_20.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_20.1: = bound_method %int_1.loc16_13, %impl.elem0.loc16_20.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc16_20.1: = specific_function %impl.elem0.loc16_20.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_20.2: = bound_method %int_1.loc16_13, %specific_fn.loc16_20.1 [concrete = constants.%bound_method.9a1] @@ -135,7 +135,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc16_20.4: ref %i32 = array_index %.loc16_20.3, %int_0 // CHECK:STDOUT: %.loc16_20.5: init %i32 = initialize_from %.loc16_20.2 to %.loc16_20.4 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc16_20.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16_20.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_20.3: = bound_method %int_2.loc16_16, %impl.elem0.loc16_20.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc16_20.2: = specific_function %impl.elem0.loc16_20.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_20.4: = bound_method %int_2.loc16_16, %specific_fn.loc16_20.2 [concrete = constants.%bound_method.b92] @@ -144,7 +144,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_1.loc16_20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc16_20.7: ref %i32 = array_index %.loc16_20.3, %int_1.loc16_20 // CHECK:STDOUT: %.loc16_20.8: init %i32 = initialize_from %.loc16_20.6 to %.loc16_20.7 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc16_20.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16_20.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_20.5: = bound_method %int_3, %impl.elem0.loc16_20.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc16_20.3: = specific_function %impl.elem0.loc16_20.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_20.6: = bound_method %int_3, %specific_fn.loc16_20.3 [concrete = constants.%bound_method.047] @@ -157,7 +157,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc16_20.13: init %array_type = converted %.loc16_20.1, %.loc16_20.12 [concrete = constants.%array] // CHECK:STDOUT: %.loc16_20.14: ref %array_type = temporary %.loc16_20.3, %.loc16_20.13 // CHECK:STDOUT: %.loc16_20.15: %array_type = bind_value %.loc16_20.14 -// CHECK:STDOUT: %impl.elem0.loc16_23: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16_23: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_23.1: = bound_method %int_1.loc16_23, %impl.elem0.loc16_23 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc16_23: = specific_function %impl.elem0.loc16_23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_23.2: = bound_method %int_1.loc16_23, %specific_fn.loc16_23 [concrete = constants.%bound_method.9a1] diff --git a/toolchain/check/testdata/array/index_not_literal.carbon b/toolchain/check/testdata/array/index_not_literal.carbon index b2940ba3e9dd..14b4fc91c5d7 100644 --- a/toolchain/check/testdata/array/index_not_literal.carbon +++ b/toolchain/check/testdata/array/index_not_literal.carbon @@ -27,8 +27,8 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -90,7 +90,7 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %int_2.loc11_28: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_32.1: %tuple.type = tuple_literal (%int_1.loc11_25, %int_2.loc11_28, %int_3) -// CHECK:STDOUT: %impl.elem0.loc11_32.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_32.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_32.1: = bound_method %int_1.loc11_25, %impl.elem0.loc11_32.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_32.1: = specific_function %impl.elem0.loc11_32.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_32.2: = bound_method %int_1.loc11_25, %specific_fn.loc11_32.1 [concrete = constants.%bound_method.9a1] @@ -99,7 +99,7 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc11_32.3: ref %i32 = array_index file.%a.var, %int_0 // CHECK:STDOUT: %.loc11_32.4: init %i32 = initialize_from %.loc11_32.2 to %.loc11_32.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc11_32.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_32.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_32.3: = bound_method %int_2.loc11_28, %impl.elem0.loc11_32.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_32.2: = specific_function %impl.elem0.loc11_32.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_32.4: = bound_method %int_2.loc11_28, %specific_fn.loc11_32.2 [concrete = constants.%bound_method.b92] @@ -108,7 +108,7 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %int_1.loc11_32: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_32.6: ref %i32 = array_index file.%a.var, %int_1.loc11_32 // CHECK:STDOUT: %.loc11_32.7: init %i32 = initialize_from %.loc11_32.5 to %.loc11_32.6 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc11_32.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_32.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_32.5: = bound_method %int_3, %impl.elem0.loc11_32.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc11_32.3: = specific_function %impl.elem0.loc11_32.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_32.6: = bound_method %int_3, %specific_fn.loc11_32.3 [concrete = constants.%bound_method.047] @@ -128,7 +128,7 @@ var b: i32 = a[{.index = 2}.index]; // CHECK:STDOUT: %.loc12_28.1: Core.IntLiteral = struct_access %.loc12_27.2, element0 [concrete = constants.%int_2.ecc] // 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: %impl.elem0.loc12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_28.1: = bound_method %.loc12_28.1, %impl.elem0.loc12 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_28.2: = bound_method %.loc12_28.1, %specific_fn.loc12 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index ea4e243f5bc9..fd05844a45ba 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -49,8 +49,8 @@ fn H() { G(3); } // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %N.51e, %Convert.specific_fn [symbolic] @@ -116,7 +116,7 @@ fn H() { G(3); } // CHECK:STDOUT: %int_32.loc9: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc9: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc4_6.1 [symbolic = %N.loc4_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %impl.elem0: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc9_23.1: = bound_method %N.ref, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_23.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc9_23.3 (constants.%bound_method)] @@ -150,8 +150,8 @@ fn H() { G(3); } // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e25: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.e25 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ffe: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.ffe [concrete] // CHECK:STDOUT: %Convert.bound.588: = bound_method %N.51e, %Convert.960 [template] // CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.f9c: = bound_method %N.51e, %Convert.specific_fn.8a8 [template] @@ -169,8 +169,8 @@ fn H() { G(3); } // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f7f: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.f7f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2b8: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.2b8 [concrete] // CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn.b6f [concrete] @@ -237,7 +237,7 @@ fn H() { G(3); } // CHECK:STDOUT: %int_32.loc10: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc10: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc5_15.1 [template = %N.loc5_15.2 (constants.%N.51e)] -// CHECK:STDOUT: %impl.elem0: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc10_23.1: = bound_method %N.ref, %impl.elem0 [template = %Convert.bound (constants.%Convert.bound.588)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc10_23.2: = bound_method %N.ref, %specific_fn [template = %bound_method.loc10_23.3 (constants.%bound_method.f9c)] @@ -255,7 +255,7 @@ fn H() { G(3); } // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_13.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc13_13.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method.047] diff --git a/toolchain/check/testdata/array/nine_elements.carbon b/toolchain/check/testdata/array/nine_elements.carbon index c181b3595fa3..3a9ed6880a6d 100644 --- a/toolchain/check/testdata/array/nine_elements.carbon +++ b/toolchain/check/testdata/array/nine_elements.carbon @@ -32,8 +32,8 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -106,7 +106,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_8.loc11_46: Core.IntLiteral = int_value 8 [concrete = constants.%int_8.b85] // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete = constants.%int_9.988] // CHECK:STDOUT: %.loc11_50.1: %tuple.type = tuple_literal (%int_1.loc11_25, %int_2.loc11_28, %int_3.loc11_31, %int_4.loc11_34, %int_5.loc11_37, %int_6.loc11_40, %int_7.loc11_43, %int_8.loc11_46, %int_9) -// CHECK:STDOUT: %impl.elem0.loc11_50.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.1: = bound_method %int_1.loc11_25, %impl.elem0.loc11_50.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_50.1: = specific_function %impl.elem0.loc11_50.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.2: = bound_method %int_1.loc11_25, %specific_fn.loc11_50.1 [concrete = constants.%bound_method.9a1] @@ -115,7 +115,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc11_50.3: ref %i32 = array_index file.%a.var, %int_0 // CHECK:STDOUT: %.loc11_50.4: init %i32 = initialize_from %.loc11_50.2 to %.loc11_50.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc11_50.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.3: = bound_method %int_2.loc11_28, %impl.elem0.loc11_50.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_50.2: = specific_function %impl.elem0.loc11_50.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.4: = bound_method %int_2.loc11_28, %specific_fn.loc11_50.2 [concrete = constants.%bound_method.b92] @@ -124,7 +124,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_1.loc11_50: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc11_50.6: ref %i32 = array_index file.%a.var, %int_1.loc11_50 // CHECK:STDOUT: %.loc11_50.7: init %i32 = initialize_from %.loc11_50.5 to %.loc11_50.6 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc11_50.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.5: = bound_method %int_3.loc11_31, %impl.elem0.loc11_50.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc11_50.3: = specific_function %impl.elem0.loc11_50.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.6: = bound_method %int_3.loc11_31, %specific_fn.loc11_50.3 [concrete = constants.%bound_method.047] @@ -133,7 +133,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_2.loc11_50: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_50.9: ref %i32 = array_index file.%a.var, %int_2.loc11_50 // CHECK:STDOUT: %.loc11_50.10: init %i32 = initialize_from %.loc11_50.8 to %.loc11_50.9 [concrete = constants.%int_3.822] -// CHECK:STDOUT: %impl.elem0.loc11_50.4: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.4: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.7: = bound_method %int_4.loc11_34, %impl.elem0.loc11_50.4 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc11_50.4: = specific_function %impl.elem0.loc11_50.4, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.8: = bound_method %int_4.loc11_34, %specific_fn.loc11_50.4 [concrete = constants.%bound_method.1da] @@ -142,7 +142,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_3.loc11_50: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_50.12: ref %i32 = array_index file.%a.var, %int_3.loc11_50 // CHECK:STDOUT: %.loc11_50.13: init %i32 = initialize_from %.loc11_50.11 to %.loc11_50.12 [concrete = constants.%int_4.940] -// CHECK:STDOUT: %impl.elem0.loc11_50.5: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.5: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.9: = bound_method %int_5.loc11_37, %impl.elem0.loc11_50.5 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn.loc11_50.5: = specific_function %impl.elem0.loc11_50.5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.10: = bound_method %int_5.loc11_37, %specific_fn.loc11_50.5 [concrete = constants.%bound_method.a25] @@ -151,7 +151,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_4.loc11_50: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_50.15: ref %i32 = array_index file.%a.var, %int_4.loc11_50 // CHECK:STDOUT: %.loc11_50.16: init %i32 = initialize_from %.loc11_50.14 to %.loc11_50.15 [concrete = constants.%int_5.0f6] -// CHECK:STDOUT: %impl.elem0.loc11_50.6: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.6: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.11: = bound_method %int_6.loc11_40, %impl.elem0.loc11_50.6 [concrete = constants.%Convert.bound.ce9] // CHECK:STDOUT: %specific_fn.loc11_50.6: = specific_function %impl.elem0.loc11_50.6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.12: = bound_method %int_6.loc11_40, %specific_fn.loc11_50.6 [concrete = constants.%bound_method.efa] @@ -160,7 +160,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_5.loc11_50: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %.loc11_50.18: ref %i32 = array_index file.%a.var, %int_5.loc11_50 // CHECK:STDOUT: %.loc11_50.19: init %i32 = initialize_from %.loc11_50.17 to %.loc11_50.18 [concrete = constants.%int_6.e56] -// CHECK:STDOUT: %impl.elem0.loc11_50.7: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.7: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.13: = bound_method %int_7.loc11_43, %impl.elem0.loc11_50.7 [concrete = constants.%Convert.bound.208] // CHECK:STDOUT: %specific_fn.loc11_50.7: = specific_function %impl.elem0.loc11_50.7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.14: = bound_method %int_7.loc11_43, %specific_fn.loc11_50.7 [concrete = constants.%bound_method.3bd] @@ -169,7 +169,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_6.loc11_50: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc11_50.21: ref %i32 = array_index file.%a.var, %int_6.loc11_50 // CHECK:STDOUT: %.loc11_50.22: init %i32 = initialize_from %.loc11_50.20 to %.loc11_50.21 [concrete = constants.%int_7.0b1] -// CHECK:STDOUT: %impl.elem0.loc11_50.8: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.8: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.15: = bound_method %int_8.loc11_46, %impl.elem0.loc11_50.8 [concrete = constants.%Convert.bound.e09] // CHECK:STDOUT: %specific_fn.loc11_50.8: = specific_function %impl.elem0.loc11_50.8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.16: = bound_method %int_8.loc11_46, %specific_fn.loc11_50.8 [concrete = constants.%bound_method.02d] @@ -178,7 +178,7 @@ var a: array(i32, 9) = (1, 2, 3, 4, 5, 6, 7, 8, 9); // CHECK:STDOUT: %int_7.loc11_50: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] // CHECK:STDOUT: %.loc11_50.24: ref %i32 = array_index file.%a.var, %int_7.loc11_50 // CHECK:STDOUT: %.loc11_50.25: init %i32 = initialize_from %.loc11_50.23 to %.loc11_50.24 [concrete = constants.%int_8.98c] -// CHECK:STDOUT: %impl.elem0.loc11_50.9: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50.9: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.17: = bound_method %int_9, %impl.elem0.loc11_50.9 [concrete = constants.%Convert.bound.9e2] // CHECK:STDOUT: %specific_fn.loc11_50.9: = specific_function %impl.elem0.loc11_50.9, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.18: = bound_method %int_9, %specific_fn.loc11_50.9 [concrete = constants.%bound_method.cd3] diff --git a/toolchain/check/testdata/as/adapter_conversion.carbon b/toolchain/check/testdata/as/adapter_conversion.carbon index 1779aab51815..e1f9e10c3534 100644 --- a/toolchain/check/testdata/as/adapter_conversion.carbon +++ b/toolchain/check/testdata/as/adapter_conversion.carbon @@ -182,8 +182,8 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -299,7 +299,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc9_27.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc9_27.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9_27.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_27.1: = bound_method %int_1, %impl.elem0.loc9_27.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc9_27.1: = specific_function %impl.elem0.loc9_27.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_27.2: = bound_method %int_1, %specific_fn.loc9_27.1 [concrete = constants.%bound_method.9a1] @@ -307,7 +307,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %.loc9_27.2: init %i32 = converted %int_1, %int.convert_checked.loc9_27.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_27.3: ref %i32 = class_element_access %return, element0 // CHECK:STDOUT: %.loc9_27.4: init %i32 = initialize_from %.loc9_27.2 to %.loc9_27.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc9_27.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9_27.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_27.3: = bound_method %int_2, %impl.elem0.loc9_27.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc9_27.2: = specific_function %impl.elem0.loc9_27.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_27.4: = bound_method %int_2, %specific_fn.loc9_27.2 [concrete = constants.%bound_method.b92] @@ -325,7 +325,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc17_31.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc17_31.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_31.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_31.1: = bound_method %int_1, %impl.elem0.loc17_31.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc17_31.1: = specific_function %impl.elem0.loc17_31.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_31.2: = bound_method %int_1, %specific_fn.loc17_31.1 [concrete = constants.%bound_method.9a1] @@ -333,7 +333,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %.loc17_31.2: init %i32 = converted %int_1, %int.convert_checked.loc17_31.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_31.3: ref %i32 = class_element_access file.%a_ref.var, element0 // CHECK:STDOUT: %.loc17_31.4: init %i32 = initialize_from %.loc17_31.2 to %.loc17_31.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc17_31.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_31.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_31.3: = bound_method %int_2, %impl.elem0.loc17_31.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc17_31.2: = specific_function %impl.elem0.loc17_31.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_31.4: = bound_method %int_2, %specific_fn.loc17_31.2 [concrete = constants.%bound_method.b92] @@ -379,8 +379,8 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -437,7 +437,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc8: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc8: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc8_15.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_15.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] @@ -568,8 +568,8 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -643,7 +643,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc13_34.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %impl.elem0.loc13_34.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_34.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_34.1: = bound_method %int_1, %impl.elem0.loc13_34.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc13_34.1: = specific_function %impl.elem0.loc13_34.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_34.2: = bound_method %int_1, %specific_fn.loc13_34.1 [concrete = constants.%bound_method.9a1] @@ -652,7 +652,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %.loc13_34.3: ref %A = temporary_storage // CHECK:STDOUT: %.loc13_34.4: ref %i32 = class_element_access %.loc13_34.3, element0 // CHECK:STDOUT: %.loc13_34.5: init %i32 = initialize_from %.loc13_34.2 to %.loc13_34.4 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc13_34.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_34.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_34.3: = bound_method %int_2, %impl.elem0.loc13_34.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc13_34.2: = specific_function %impl.elem0.loc13_34.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_34.4: = bound_method %int_2, %specific_fn.loc13_34.2 [concrete = constants.%bound_method.b92] @@ -687,8 +687,8 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -764,7 +764,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc22_33.1: %struct_type.x.y.4cf = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A] -// CHECK:STDOUT: %impl.elem0.loc22_33.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc22_33.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_33.1: = bound_method %int_1, %impl.elem0.loc22_33.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc22_33.1: = specific_function %impl.elem0.loc22_33.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_33.2: = bound_method %int_1, %specific_fn.loc22_33.1 [concrete = constants.%bound_method.9a1] @@ -773,7 +773,7 @@ var b: B = {.x = 1} as B; // CHECK:STDOUT: %.loc22_33.3: ref %A = temporary_storage // CHECK:STDOUT: %.loc22_33.4: ref %i32 = class_element_access %.loc22_33.3, element0 // CHECK:STDOUT: %.loc22_33.5: init %i32 = initialize_from %.loc22_33.2 to %.loc22_33.4 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc22_33.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc22_33.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_33.3: = bound_method %int_2, %impl.elem0.loc22_33.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc22_33.2: = specific_function %impl.elem0.loc22_33.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_33.4: = bound_method %int_2, %specific_fn.loc22_33.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/as/basic.carbon b/toolchain/check/testdata/as/basic.carbon index 27e9c5ce1e6b..5facbf758d66 100644 --- a/toolchain/check/testdata/as/basic.carbon +++ b/toolchain/check/testdata/as/basic.carbon @@ -25,8 +25,8 @@ fn Main() -> i32 { // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -64,7 +64,7 @@ fn Main() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc12: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc12: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc12_12.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_12.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/as/overloaded.carbon b/toolchain/check/testdata/as/overloaded.carbon index 738329ef0328..8abfb94e5df4 100644 --- a/toolchain/check/testdata/as/overloaded.carbon +++ b/toolchain/check/testdata/as/overloaded.carbon @@ -38,26 +38,26 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: %impl_witness.491: = impl_witness (@impl.d8c.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.0e3: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.311: %Convert.type.0e3 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.e45: %As.type.602 = facet_value %i32, %impl_witness.491 [concrete] +// CHECK:STDOUT: %As.facet.206: %As.type.602 = facet_value %i32, (%impl_witness.491) [concrete] // CHECK:STDOUT: %As.type.fd4: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [concrete] // CHECK:STDOUT: %impl_witness.662: = impl_witness (@impl.18a.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.c23: type = fn_type @Convert.3 [concrete] // CHECK:STDOUT: %Convert.8bb: %Convert.type.c23 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.831: %As.type.fd4 = facet_value %X, %impl_witness.662 [concrete] +// CHECK:STDOUT: %As.facet.79a: %As.type.fd4 = facet_value %X, (%impl_witness.662) [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.7, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet.5e2: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet.5e2 [concrete] +// CHECK:STDOUT: %As.facet.d7e: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet.d7e [concrete] // CHECK:STDOUT: %Convert.bound.e80: = bound_method %int_4.0c1, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.7(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_4.940: %i32 = int_value 4 [concrete] -// CHECK:STDOUT: %.b22: type = fn_type_with_self_type %Convert.type.35b, %As.facet.e45 [concrete] +// CHECK:STDOUT: %.e84: type = fn_type_with_self_type %Convert.type.35b, %As.facet.206 [concrete] // CHECK:STDOUT: %Convert.bound.483: = bound_method %int_4.940, %Convert.311 [concrete] -// CHECK:STDOUT: %.599: type = fn_type_with_self_type %Convert.type.99b, %As.facet.831 [concrete] +// CHECK:STDOUT: %.c95: type = fn_type_with_self_type %Convert.type.99b, %As.facet.79a [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -191,7 +191,7 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %int_32.loc23_21: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc23_21: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc23_18: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0.loc23_18: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc23_18.1: = bound_method %int_4, %impl.elem0.loc23_18 [concrete = constants.%Convert.bound.e80] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc23_18, @Convert.7(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_18.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] @@ -199,14 +199,14 @@ let n: i32 = ((4 as i32) as X) as i32; // CHECK:STDOUT: %.loc23_18.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc23_18.2: %i32 = converted %int_4, %.loc23_18.1 [concrete = constants.%int_4.940] // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X] -// CHECK:STDOUT: %impl.elem0.loc23_26: %.b22 = impl_witness_access constants.%impl_witness.491, element0 [concrete = constants.%Convert.311] +// CHECK:STDOUT: %impl.elem0.loc23_26: %.e84 = impl_witness_access constants.%impl_witness.491, element0 [concrete = constants.%Convert.311] // CHECK:STDOUT: %bound_method.loc23_26: = bound_method %.loc23_18.2, %impl.elem0.loc23_26 [concrete = constants.%Convert.bound.483] // CHECK:STDOUT: %.loc23_26.1: ref %X = temporary_storage // CHECK:STDOUT: %Convert.call.loc23_26: init %X = call %bound_method.loc23_26(%.loc23_18.2) to %.loc23_26.1 // CHECK:STDOUT: %.loc23_26.2: init %X = converted %.loc23_18.2, %Convert.call.loc23_26 // CHECK:STDOUT: %int_32.loc23_35: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc23_35: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc23_32: %.599 = impl_witness_access constants.%impl_witness.662, element0 [concrete = constants.%Convert.8bb] +// CHECK:STDOUT: %impl.elem0.loc23_32: %.c95 = impl_witness_access constants.%impl_witness.662, element0 [concrete = constants.%Convert.8bb] // CHECK:STDOUT: %bound_method.loc23_32: = bound_method %.loc23_26.2, %impl.elem0.loc23_32 // CHECK:STDOUT: %.loc23_26.3: ref %X = temporary %.loc23_26.1, %.loc23_26.2 // CHECK:STDOUT: %.loc23_26.4: %X = bind_value %.loc23_26.3 diff --git a/toolchain/check/testdata/basics/builtin_types.carbon b/toolchain/check/testdata/basics/builtin_types.carbon index 31514aa8768d..4b86898439ef 100644 --- a/toolchain/check/testdata/basics/builtin_types.carbon +++ b/toolchain/check/testdata/basics/builtin_types.carbon @@ -24,8 +24,8 @@ var test_type: type = i32; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -93,7 +93,7 @@ var test_type: type = i32; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon b/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon index 2968321963da..bd12116f9031 100644 --- a/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon +++ b/toolchain/check/testdata/basics/fail_numeric_literal_overflow.carbon @@ -49,8 +49,8 @@ let e: f64 = 5.0e39999999999999999993; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.7ef: = bound_method %int_39999999999999999993.af6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.75f: = bound_method %int_39999999999999999993.af6, %Convert.specific_fn [concrete] @@ -91,7 +91,7 @@ let e: f64 = 5.0e39999999999999999993; // CHECK:STDOUT: %int_32.loc15: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc15: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_14.1: = bound_method @__global_init.%int_39999999999999999993, %impl.elem0.loc15 [concrete = constants.%Convert.bound.7ef] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_14.2: = bound_method @__global_init.%int_39999999999999999993, %specific_fn.loc15 [concrete = constants.%bound_method.75f] @@ -106,7 +106,7 @@ let e: f64 = 5.0e39999999999999999993; // CHECK:STDOUT: %int_32.loc21: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc21: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc21: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_14.1: = bound_method @__global_init.%int_2147483648.loc21, %impl.elem0.loc21 [concrete = constants.%Convert.bound.85f] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_14.2: = bound_method @__global_init.%int_2147483648.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.f79] @@ -121,7 +121,7 @@ let e: f64 = 5.0e39999999999999999993; // CHECK:STDOUT: %int_32.loc27: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc27: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc27: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc27: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_14.1: = bound_method @__global_init.%int_2147483648.loc27, %impl.elem0.loc27 [concrete = constants.%Convert.bound.85f] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_14.2: = bound_method @__global_init.%int_2147483648.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.f79] diff --git a/toolchain/check/testdata/basics/numeric_literals.carbon b/toolchain/check/testdata/basics/numeric_literals.carbon index fa41ab2bff99..959d446e2ad9 100644 --- a/toolchain/check/testdata/basics/numeric_literals.carbon +++ b/toolchain/check/testdata/basics/numeric_literals.carbon @@ -48,8 +48,8 @@ fn F() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.e09: = bound_method %int_8.b85, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.02d: = bound_method %int_8.b85, %Convert.specific_fn [concrete] @@ -113,7 +113,7 @@ fn F() { // CHECK:STDOUT: %int_2147483647.loc19: Core.IntLiteral = int_value 2147483647 [concrete = constants.%int_2147483647.d89] // CHECK:STDOUT: %int_2147483647.loc20: Core.IntLiteral = int_value 2147483647 [concrete = constants.%int_2147483647.d89] // CHECK:STDOUT: %.loc21_3.1: %tuple.type.27c = tuple_literal (%int_8.loc15, %int_9, %int_8.loc17, %int_8.loc18, %int_2147483647.loc19, %int_2147483647.loc20) -// CHECK:STDOUT: %impl.elem0.loc21_3.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21_3.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_3.1: = bound_method %int_8.loc15, %impl.elem0.loc21_3.1 [concrete = constants.%Convert.bound.e09] // CHECK:STDOUT: %specific_fn.loc21_3.1: = specific_function %impl.elem0.loc21_3.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_3.2: = bound_method %int_8.loc15, %specific_fn.loc21_3.1 [concrete = constants.%bound_method.02d] @@ -122,7 +122,7 @@ fn F() { // CHECK:STDOUT: %int_0.loc21: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc21_3.3: ref %i32 = array_index %ints.var, %int_0.loc21 // CHECK:STDOUT: %.loc21_3.4: init %i32 = initialize_from %.loc21_3.2 to %.loc21_3.3 [concrete = constants.%int_8.98c] -// CHECK:STDOUT: %impl.elem0.loc21_3.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21_3.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_3.3: = bound_method %int_9, %impl.elem0.loc21_3.2 [concrete = constants.%Convert.bound.9e2] // CHECK:STDOUT: %specific_fn.loc21_3.2: = specific_function %impl.elem0.loc21_3.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_3.4: = bound_method %int_9, %specific_fn.loc21_3.2 [concrete = constants.%bound_method.cd3] @@ -131,7 +131,7 @@ fn F() { // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %.loc21_3.6: ref %i32 = array_index %ints.var, %int_1.loc21 // CHECK:STDOUT: %.loc21_3.7: init %i32 = initialize_from %.loc21_3.5 to %.loc21_3.6 [concrete = constants.%int_9.f88] -// CHECK:STDOUT: %impl.elem0.loc21_3.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21_3.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_3.5: = bound_method %int_8.loc17, %impl.elem0.loc21_3.3 [concrete = constants.%Convert.bound.e09] // CHECK:STDOUT: %specific_fn.loc21_3.3: = specific_function %impl.elem0.loc21_3.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_3.6: = bound_method %int_8.loc17, %specific_fn.loc21_3.3 [concrete = constants.%bound_method.02d] @@ -140,7 +140,7 @@ fn F() { // CHECK:STDOUT: %int_2.loc21: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %.loc21_3.9: ref %i32 = array_index %ints.var, %int_2.loc21 // CHECK:STDOUT: %.loc21_3.10: init %i32 = initialize_from %.loc21_3.8 to %.loc21_3.9 [concrete = constants.%int_8.98c] -// CHECK:STDOUT: %impl.elem0.loc21_3.4: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21_3.4: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_3.7: = bound_method %int_8.loc18, %impl.elem0.loc21_3.4 [concrete = constants.%Convert.bound.e09] // CHECK:STDOUT: %specific_fn.loc21_3.4: = specific_function %impl.elem0.loc21_3.4, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_3.8: = bound_method %int_8.loc18, %specific_fn.loc21_3.4 [concrete = constants.%bound_method.02d] @@ -149,7 +149,7 @@ fn F() { // CHECK:STDOUT: %int_3.loc21: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] // CHECK:STDOUT: %.loc21_3.12: ref %i32 = array_index %ints.var, %int_3.loc21 // CHECK:STDOUT: %.loc21_3.13: init %i32 = initialize_from %.loc21_3.11 to %.loc21_3.12 [concrete = constants.%int_8.98c] -// CHECK:STDOUT: %impl.elem0.loc21_3.5: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21_3.5: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_3.9: = bound_method %int_2147483647.loc19, %impl.elem0.loc21_3.5 [concrete = constants.%Convert.bound.f38] // CHECK:STDOUT: %specific_fn.loc21_3.5: = specific_function %impl.elem0.loc21_3.5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_3.10: = bound_method %int_2147483647.loc19, %specific_fn.loc21_3.5 [concrete = constants.%bound_method.8e1] @@ -158,7 +158,7 @@ fn F() { // CHECK:STDOUT: %int_4.loc21: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] // CHECK:STDOUT: %.loc21_3.15: ref %i32 = array_index %ints.var, %int_4.loc21 // CHECK:STDOUT: %.loc21_3.16: init %i32 = initialize_from %.loc21_3.14 to %.loc21_3.15 [concrete = constants.%int_2147483647.a74] -// CHECK:STDOUT: %impl.elem0.loc21_3.6: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21_3.6: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_3.11: = bound_method %int_2147483647.loc20, %impl.elem0.loc21_3.6 [concrete = constants.%Convert.bound.f38] // CHECK:STDOUT: %specific_fn.loc21_3.6: = specific_function %impl.elem0.loc21_3.6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_3.12: = bound_method %int_2147483647.loc20, %specific_fn.loc21_3.6 [concrete = constants.%bound_method.8e1] diff --git a/toolchain/check/testdata/basics/parens.carbon b/toolchain/check/testdata/basics/parens.carbon index 7b470b07ea0f..bf7770f59176 100644 --- a/toolchain/check/testdata/basics/parens.carbon +++ b/toolchain/check/testdata/basics/parens.carbon @@ -22,8 +22,8 @@ var b: i32 = ((2)); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -75,7 +75,7 @@ var b: i32 = ((2)); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc11: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_1.1: = bound_method %int_1, %impl.elem0.loc11 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_1.2: = bound_method %int_1, %specific_fn.loc11 [concrete = constants.%bound_method.9a1] @@ -83,7 +83,7 @@ var b: i32 = ((2)); // CHECK:STDOUT: %.loc11: init %i32 = converted %int_1, %int.convert_checked.loc11 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: assign file.%a.var, %.loc11 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_1.1: = bound_method %int_2, %impl.elem0.loc12 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_1.2: = bound_method %int_2, %specific_fn.loc12 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/basics/run_i32.carbon b/toolchain/check/testdata/basics/run_i32.carbon index a97cf9326bb6..10714f055f77 100644 --- a/toolchain/check/testdata/basics/run_i32.carbon +++ b/toolchain/check/testdata/basics/run_i32.carbon @@ -23,8 +23,8 @@ fn Run() -> i32 { return 0; } // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -62,7 +62,7 @@ fn Run() -> i32 { return 0; } // CHECK:STDOUT: fn @Run() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_facet_type.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_facet_type.carbon index 154b3509ec76..aa82ff5d9b4b 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_facet_type.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_facet_type.carbon @@ -35,7 +35,7 @@ fn F() { // CHECK:STDOUT: %WalkAnimal: %WalkAnimal.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness) [concrete] // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal, @WalkAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -99,7 +99,7 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %WalkAnimal.ref: %WalkAnimal.type = name_ref WalkAnimal, file.%WalkAnimal.decl [concrete = constants.%WalkAnimal] // CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc19: %Animal.type = converted %Goat.ref, %Animal.facet [concrete = constants.%Animal.facet] // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal.ref, @WalkAnimal(constants.%Animal.facet) [concrete = constants.%WalkAnimal.specific_fn] // CHECK:STDOUT: %WalkAnimal.call: init %empty_tuple.type = call %WalkAnimal.specific_fn() diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_generic_facet_value.carbon index 560217c475f5..fa808a461f3d 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_type_to_generic_facet_value.carbon @@ -190,7 +190,7 @@ fn G() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.17b: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a56: %F.type.17b = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value %ImplsGeneric, %impl_witness [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value %ImplsGeneric, (%impl_witness) [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Generic.type.91ccba.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] @@ -200,7 +200,7 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %CallGenericMethod.specific_fn.d8c: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] +// CHECK:STDOUT: %CallGenericMethod.specific_fn.934: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet) [concrete] // CHECK:STDOUT: %PassThroughToGenericMethod.type: type = fn_type @PassThroughToGenericMethod [concrete] // CHECK:STDOUT: %PassThroughToGenericMethod: %PassThroughToGenericMethod.type = struct_value () [concrete] // CHECK:STDOUT: %CallGenericMethod.specific_fn.a24: = specific_function %CallGenericMethod, @CallGenericMethod(%T, %U) [symbolic] @@ -346,9 +346,9 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.ref: %CallGenericMethod.type = name_ref CallGenericMethod, file.%CallGenericMethod.decl [concrete = constants.%CallGenericMethod] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, constants.%impl_witness [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, (constants.%impl_witness) [concrete = constants.%Generic.facet] // CHECK:STDOUT: %.loc20: %Generic.type.769 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, %.loc20) [concrete = constants.%CallGenericMethod.specific_fn.d8c] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, %.loc20) [concrete = constants.%CallGenericMethod.specific_fn.934] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -379,7 +379,7 @@ fn G() { // CHECK:STDOUT: %PassThroughToGenericMethod.ref: %PassThroughToGenericMethod.type = name_ref PassThroughToGenericMethod, file.%PassThroughToGenericMethod.decl [concrete = constants.%PassThroughToGenericMethod] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, constants.%impl_witness [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, (constants.%impl_witness) [concrete = constants.%Generic.facet] // CHECK:STDOUT: %.loc28: %Generic.type.769 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] // CHECK:STDOUT: %PassThroughToGenericMethod.specific_fn: = specific_function %PassThroughToGenericMethod.ref, @PassThroughToGenericMethod(constants.%GenericParam, %.loc28) [concrete = constants.%PassThroughToGenericMethod.specific_fn] // CHECK:STDOUT: %PassThroughToGenericMethod.call: init %empty_tuple.type = call %PassThroughToGenericMethod.specific_fn() @@ -465,7 +465,7 @@ fn G() { // CHECK:STDOUT: %U.patt.loc23_41.2 => constants.%Generic.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc24_3.2 => constants.%CallGenericMethod.specific_fn.d8c +// CHECK:STDOUT: %CallGenericMethod.specific_fn.loc24_3.2 => constants.%CallGenericMethod.specific_fn.934 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @PassThroughToGenericMethod(constants.%GenericParam, constants.%Generic.facet) { @@ -502,7 +502,7 @@ fn G() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.17b: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a56: %F.type.17b = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value %ImplsGeneric, %impl_witness [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value %ImplsGeneric, (%impl_witness) [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Generic.type.91ccba.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] @@ -650,7 +650,7 @@ fn G() { // CHECK:STDOUT: %.loc20_36.3: init %GenericParam = class_init (), %.loc20_36.2 [concrete = constants.%GenericParam.val] // CHECK:STDOUT: %.loc20_36.4: ref %GenericParam = temporary %.loc20_36.2, %.loc20_36.3 // CHECK:STDOUT: %.loc20_38.1: ref %GenericParam = converted %.loc20_36.1, %.loc20_36.4 -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, constants.%impl_witness [concrete = constants.%Generic.facet] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, (constants.%impl_witness) [concrete = constants.%Generic.facet] // CHECK:STDOUT: %.loc20_53: %Generic.type.769 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, %.loc20_53) [concrete = constants.%CallGenericMethod.specific_fn] // CHECK:STDOUT: %.loc20_38.2: %GenericParam = bind_value %.loc20_38.1 diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_facet_value_value.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_facet_value_value.carbon index 60a9391a3e9e..25c18f13a9d3 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_facet_value_value.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_facet_value_value.carbon @@ -146,7 +146,7 @@ fn F() { // 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] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness) [concrete] // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal, @WalkAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -234,9 +234,9 @@ fn F() { // CHECK:STDOUT: %.loc14_15.3: init %Goat = class_init (), %.loc14_15.2 [concrete = constants.%Goat.val] // CHECK:STDOUT: %.loc14_15.4: ref %Goat = temporary %.loc14_15.2, %.loc14_15.3 // CHECK:STDOUT: %.loc14_17.1: ref %Goat = converted %.loc14_15.1, %.loc14_15.4 -// CHECK:STDOUT: %Animal.facet.loc14_24.1: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc14_24.1: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc14_24.1: %Animal.type = converted constants.%Goat, %Animal.facet.loc14_24.1 [concrete = constants.%Animal.facet] -// CHECK:STDOUT: %Animal.facet.loc14_24.2: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc14_24.2: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc14_24.2: %Animal.type = converted constants.%Goat, %Animal.facet.loc14_24.2 [concrete = constants.%Animal.facet] // CHECK:STDOUT: %WalkAnimal.specific_fn: = specific_function %WalkAnimal.ref, @WalkAnimal(constants.%Animal.facet) [concrete = constants.%WalkAnimal.specific_fn] // CHECK:STDOUT: %.loc14_17.2: %Goat = bind_value %.loc14_17.1 diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_generic_facet_value_value.carbon index 65910ee77307..820dd8600bf3 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_class_value_to_generic_facet_value_value.carbon @@ -232,7 +232,7 @@ fn B() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.17b: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a56: %F.type.17b = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet.b0a: %Generic.type.769 = facet_value %ImplsGeneric, %impl_witness [concrete] +// CHECK:STDOUT: %Generic.facet.8bd: %Generic.type.769 = facet_value %ImplsGeneric, (%impl_witness) [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Generic.type.91ccba.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] @@ -248,19 +248,19 @@ fn B() { // CHECK:STDOUT: %Generic.assoc_type.de973d.2: type = assoc_entity_type %Generic.type.91ccba.2 [symbolic] // CHECK:STDOUT: %assoc0.29ce53.2: %Generic.assoc_type.de973d.2 = assoc_entity element0, @Generic.%F.decl [symbolic] // CHECK:STDOUT: %require_complete.02a: = require_complete_type %Generic.type.91ccba.2 [symbolic] -// CHECK:STDOUT: %U.as_wit: = facet_access_witness %U [symbolic] -// CHECK:STDOUT: %Generic.facet.2ea: %Generic.type.91ccba.2 = facet_value %U.as_type, %U.as_wit [symbolic] -// CHECK:STDOUT: %.da8: type = fn_type_with_self_type %F.type.f439a9.2, %Generic.facet.2ea [symbolic] -// CHECK:STDOUT: %impl.elem0: %.da8 = impl_witness_access %U.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.1(%T, %Generic.facet.2ea) [symbolic] +// CHECK:STDOUT: %U.as_wit.iface0: = facet_access_witness %U, element0 [symbolic] +// CHECK:STDOUT: %Generic.facet.0aa: %Generic.type.91ccba.2 = facet_value %U.as_type, (%U.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.10b: type = fn_type_with_self_type %F.type.f439a9.2, %Generic.facet.0aa [symbolic] +// CHECK:STDOUT: %impl.elem0: %.10b = impl_witness_access %U.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.1(%T, %Generic.facet.0aa) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %ImplsGeneric.val: %ImplsGeneric = struct_value () [concrete] // CHECK:STDOUT: %GenericParam.val: %GenericParam = struct_value () [concrete] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet.b0a) [concrete] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet.8bd) [concrete] // CHECK:STDOUT: %complete_type.997: = complete_type_witness %Generic.type.769 [concrete] -// CHECK:STDOUT: %.db1: type = fn_type_with_self_type %F.type.4cf, %Generic.facet.b0a [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.a56, @F.1(%GenericParam, %Generic.facet.b0a) [concrete] +// CHECK:STDOUT: %.1eb: type = fn_type_with_self_type %F.type.4cf, %Generic.facet.8bd [concrete] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.a56, @F.1(%GenericParam, %Generic.facet.8bd) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -393,11 +393,11 @@ fn B() { // CHECK:STDOUT: %require_complete.loc18: = require_complete_type @CallGenericMethod.%Generic.type.loc17_45.2 (%Generic.type.91ccba.2) [symbolic = %require_complete.loc18 (constants.%require_complete.02a)] // CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @CallGenericMethod.%Generic.type.loc17_45.2 (%Generic.type.91ccba.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.de973d.2)] // CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.de973d.2) = assoc_entity element0, @Generic.%F.decl [symbolic = %assoc0 (constants.%assoc0.29ce53.2)] -// CHECK:STDOUT: %U.as_wit.loc18_4.2: = facet_access_witness %U.loc17_32.2 [symbolic = %U.as_wit.loc18_4.2 (constants.%U.as_wit)] +// CHECK:STDOUT: %U.as_wit.iface0.loc18_4.2: = facet_access_witness %U.loc17_32.2, element0 [symbolic = %U.as_wit.iface0.loc18_4.2 (constants.%U.as_wit.iface0)] // CHECK:STDOUT: %F.type: type = fn_type @F.1, @Generic(%T.loc17_22.2) [symbolic = %F.type (constants.%F.type.f439a9.2)] -// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc17_45.2 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc17_51.2, %U.as_wit.loc18_4.2 [symbolic = %Generic.facet (constants.%Generic.facet.2ea)] -// CHECK:STDOUT: %.loc18_4.3: type = fn_type_with_self_type %F.type, %Generic.facet [symbolic = %.loc18_4.3 (constants.%.da8)] -// CHECK:STDOUT: %impl.elem0.loc18_4.2: @CallGenericMethod.%.loc18_4.3 (%.da8) = impl_witness_access %U.as_wit.loc18_4.2, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc17_45.2 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc17_51.2, (%U.as_wit.iface0.loc18_4.2) [symbolic = %Generic.facet (constants.%Generic.facet.0aa)] +// CHECK:STDOUT: %.loc18_4.3: type = fn_type_with_self_type %F.type, %Generic.facet [symbolic = %.loc18_4.3 (constants.%.10b)] +// CHECK:STDOUT: %impl.elem0.loc18_4.2: @CallGenericMethod.%.loc18_4.3 (%.10b) = impl_witness_access %U.as_wit.iface0.loc18_4.2, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc18_4.2: = specific_function %impl.elem0.loc18_4.2, @F.1(%T.loc17_22.2, %Generic.facet) [symbolic = %specific_fn.loc18_4.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc17_22.1: type, %U.patt.loc17_32.1: @CallGenericMethod.%Generic.type.loc17_45.2 (%Generic.type.91ccba.2)](%a.param_patt: @CallGenericMethod.%U.as_type.loc17_51.2 (%U.as_type), %s.param_patt: @CallGenericMethod.%T.loc17_22.2 (%T)) { @@ -407,9 +407,9 @@ fn B() { // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.de973d.2) = name_ref F, %.loc18_4.1 [symbolic = %assoc0 (constants.%assoc0.29ce53.2)] // CHECK:STDOUT: %U.as_type.loc18: type = facet_access_type %U.ref.loc18 [symbolic = %U.as_type.loc17_51.2 (constants.%U.as_type)] // CHECK:STDOUT: %.loc18_4.2: type = converted %U.ref.loc18, %U.as_type.loc18 [symbolic = %U.as_type.loc17_51.2 (constants.%U.as_type)] -// CHECK:STDOUT: %U.as_wit.loc18_4.1: = facet_access_witness %U.ref.loc18 [symbolic = %U.as_wit.loc18_4.2 (constants.%U.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc18_4.1: @CallGenericMethod.%.loc18_4.3 (%.da8) = impl_witness_access %U.as_wit.loc18_4.1, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_fn.loc18_4.1: = specific_function %impl.elem0.loc18_4.1, @F.1(constants.%T, constants.%Generic.facet.2ea) [symbolic = %specific_fn.loc18_4.2 (constants.%specific_fn)] +// CHECK:STDOUT: %U.as_wit.iface0.loc18_4.1: = facet_access_witness %U.ref.loc18, element0 [symbolic = %U.as_wit.iface0.loc18_4.2 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc18_4.1: @CallGenericMethod.%.loc18_4.3 (%.10b) = impl_witness_access %U.as_wit.iface0.loc18_4.1, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_fn.loc18_4.1: = specific_function %impl.elem0.loc18_4.1, @F.1(constants.%T, constants.%Generic.facet.0aa) [symbolic = %specific_fn.loc18_4.2 (constants.%specific_fn)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %specific_fn.loc18_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -430,8 +430,8 @@ fn B() { // CHECK:STDOUT: %.loc22_42.3: init %GenericParam = class_init (), %.loc22_42.2 [concrete = constants.%GenericParam.val] // CHECK:STDOUT: %.loc22_42.4: ref %GenericParam = temporary %.loc22_42.2, %.loc22_42.3 // CHECK:STDOUT: %.loc22_44.1: ref %GenericParam = converted %.loc22_42.1, %.loc22_42.4 -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, constants.%impl_witness [concrete = constants.%Generic.facet.b0a] -// CHECK:STDOUT: %.loc22_59: %Generic.type.769 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet.b0a] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, (constants.%impl_witness) [concrete = constants.%Generic.facet.8bd] +// CHECK:STDOUT: %.loc22_59: %Generic.type.769 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet.8bd] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, %.loc22_59) [concrete = constants.%CallGenericMethod.specific_fn] // CHECK:STDOUT: %.loc22_24.2: %ImplsGeneric = bind_value %.loc22_24.1 // CHECK:STDOUT: %.loc22_44.2: %GenericParam = bind_value %.loc22_44.1 @@ -461,7 +461,7 @@ fn B() { // CHECK:STDOUT: %assoc0.loc7_9.2 => constants.%assoc0.9b7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%GenericParam, constants.%Generic.facet.b0a) {} +// CHECK:STDOUT: specific @F.1(constants.%GenericParam, constants.%Generic.facet.8bd) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(constants.%T) { // CHECK:STDOUT: %Scalar.loc6_19.2 => constants.%T @@ -487,7 +487,7 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(@CallGenericMethod.%T.loc17_22.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Generic.facet.2ea) {} +// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Generic.facet.0aa) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(@CallGenericMethod.%T.loc17_22.2, @CallGenericMethod.%Generic.facet) {} // CHECK:STDOUT: @@ -495,8 +495,8 @@ fn B() { // CHECK:STDOUT: %T.loc17_22.2 => constants.%GenericParam // CHECK:STDOUT: %T.patt.loc17_22.2 => constants.%GenericParam // CHECK:STDOUT: %Generic.type.loc17_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc17_32.2 => constants.%Generic.facet.b0a -// CHECK:STDOUT: %U.patt.loc17_32.2 => constants.%Generic.facet.b0a +// CHECK:STDOUT: %U.loc17_32.2 => constants.%Generic.facet.8bd +// CHECK:STDOUT: %U.patt.loc17_32.2 => constants.%Generic.facet.8bd // CHECK:STDOUT: %U.as_type.loc17_51.2 => constants.%ImplsGeneric // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -505,20 +505,20 @@ fn B() { // CHECK:STDOUT: %require_complete.loc18 => constants.%complete_type.997 // CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.9f1 // CHECK:STDOUT: %assoc0 => constants.%assoc0.9b7 -// CHECK:STDOUT: %U.as_wit.loc18_4.2 => constants.%impl_witness +// CHECK:STDOUT: %U.as_wit.iface0.loc18_4.2 => constants.%impl_witness // CHECK:STDOUT: %F.type => constants.%F.type.4cf -// CHECK:STDOUT: %Generic.facet => constants.%Generic.facet.b0a -// CHECK:STDOUT: %.loc18_4.3 => constants.%.db1 +// CHECK:STDOUT: %Generic.facet => constants.%Generic.facet.8bd +// CHECK:STDOUT: %.loc18_4.3 => constants.%.1eb // CHECK:STDOUT: %impl.elem0.loc18_4.2 => constants.%F.a56 // CHECK:STDOUT: %specific_fn.loc18_4.2 => constants.%F.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.b0a) { +// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.8bd) { // CHECK:STDOUT: %T.loc17_22.2 => constants.%GenericParam // CHECK:STDOUT: %T.patt.loc17_22.2 => constants.%GenericParam // CHECK:STDOUT: %Generic.type.loc17_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc17_32.2 => constants.%Generic.facet.b0a -// CHECK:STDOUT: %U.patt.loc17_32.2 => constants.%Generic.facet.b0a +// CHECK:STDOUT: %U.loc17_32.2 => constants.%Generic.facet.8bd +// CHECK:STDOUT: %U.patt.loc17_32.2 => constants.%Generic.facet.8bd // CHECK:STDOUT: %U.as_type.loc17_51.2 => constants.%ImplsGeneric // CHECK:STDOUT: } // CHECK:STDOUT: @@ -554,7 +554,7 @@ fn B() { // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %complete_type.3d9: = complete_type_witness %I.type.202 [concrete] // CHECK:STDOUT: %impl_witness.e3d: = impl_witness (), @impl(%empty_struct_type) [concrete] -// CHECK:STDOUT: %I.facet: %I.type.202 = facet_value %C, %impl_witness.e3d [concrete] +// CHECK:STDOUT: %I.facet: %I.type.202 = facet_value %C, (%impl_witness.e3d) [concrete] // CHECK:STDOUT: %A.specific_fn: = specific_function %A, @A(%I.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -683,9 +683,9 @@ fn B() { // CHECK:STDOUT: %.loc14_6.3: init %C = class_init (), %.loc14_6.2 [concrete = constants.%C.val] // CHECK:STDOUT: %.loc14_6.4: ref %C = temporary %.loc14_6.2, %.loc14_6.3 // CHECK:STDOUT: %.loc14_8.1: ref %C = converted %.loc14_6.1, %.loc14_6.4 -// CHECK:STDOUT: %I.facet.loc14_12.1: %I.type.202 = facet_value constants.%C, constants.%impl_witness.e3d [concrete = constants.%I.facet] +// CHECK:STDOUT: %I.facet.loc14_12.1: %I.type.202 = facet_value constants.%C, (constants.%impl_witness.e3d) [concrete = constants.%I.facet] // CHECK:STDOUT: %.loc14_12.1: %I.type.202 = converted constants.%C, %I.facet.loc14_12.1 [concrete = constants.%I.facet] -// CHECK:STDOUT: %I.facet.loc14_12.2: %I.type.202 = facet_value constants.%C, constants.%impl_witness.e3d [concrete = constants.%I.facet] +// CHECK:STDOUT: %I.facet.loc14_12.2: %I.type.202 = facet_value constants.%C, (constants.%impl_witness.e3d) [concrete = constants.%I.facet] // CHECK:STDOUT: %.loc14_12.2: %I.type.202 = converted constants.%C, %I.facet.loc14_12.2 [concrete = constants.%I.facet] // CHECK:STDOUT: %A.specific_fn: = specific_function %A.ref, @A(constants.%I.facet) [concrete = constants.%A.specific_fn] // CHECK:STDOUT: %.loc14_8.2: %C = bind_value %.loc14_8.1 diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_as_type_knows_original_type.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_as_type_knows_original_type.carbon index 50ed2cb95cb7..cb46f8eb7007 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_as_type_knows_original_type.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_as_type_knows_original_type.carbon @@ -265,8 +265,8 @@ fn F() { // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness [concrete] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Goat, %impl_witness [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness) [concrete] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Goat, (%impl_witness) [concrete] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -359,11 +359,11 @@ fn F() { // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] // CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc16_14: %Animal.type = converted %Goat.ref, %Animal.facet [concrete = constants.%Animal.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc16_14 [concrete = constants.%Goat] // CHECK:STDOUT: %.loc16_25: type = converted %.loc16_14, %as_type [concrete = constants.%Goat] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Eats.facet] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Eats.facet] // CHECK:STDOUT: %.loc16_32: %Eats.type = converted %.loc16_25, %Eats.facet [concrete = constants.%Eats.facet] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [concrete = constants.%Feed.specific_fn] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn() @@ -401,14 +401,14 @@ fn F() { // CHECK:STDOUT: %impl_witness.9a5: = impl_witness (@impl.626.%Eat.decl) [concrete] // CHECK:STDOUT: %Eat.type.1b3: type = fn_type @Eat.2 [concrete] // CHECK:STDOUT: %Eat.73e: %Eat.type.1b3 = struct_value () [concrete] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Goat, %impl_witness.9a5 [concrete] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Goat, (%impl_witness.9a5) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness.1bc [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness.1bc) [concrete] // CHECK:STDOUT: %Goat.val: %Goat = struct_value () [concrete] -// CHECK:STDOUT: %.e36: type = fn_type_with_self_type %Eat.type.e5d, %Eats.facet [concrete] +// CHECK:STDOUT: %.aa8: type = fn_type_with_self_type %Eat.type.e5d, %Eats.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -516,7 +516,7 @@ fn F() { // CHECK:STDOUT: %.loc24_15.1: type = splice_block %.loc24_15.3 [concrete = constants.%Goat] { // CHECK:STDOUT: %Goat.ref.loc24_10: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] // CHECK:STDOUT: %Animal.ref.loc24: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %Animal.facet.loc24: %Animal.type = facet_value constants.%Goat, constants.%impl_witness.1bc [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc24: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness.1bc) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc24_15.2: %Animal.type = converted %Goat.ref.loc24_10, %Animal.facet.loc24 [concrete = constants.%Animal.facet] // CHECK:STDOUT: %as_type.loc24: type = facet_access_type %.loc24_15.2 [concrete = constants.%Goat] // CHECK:STDOUT: %.loc24_15.3: type = converted %.loc24_15.2, %as_type.loc24 [concrete = constants.%Goat] @@ -527,7 +527,7 @@ fn F() { // CHECK:STDOUT: %Bleet.call.loc25: init %empty_tuple.type = call %Bleet.ref.loc25() // CHECK:STDOUT: %x.ref.loc26: ref %Goat = name_ref x, %x // CHECK:STDOUT: %Eat.ref.loc26: %Eats.assoc_type = name_ref Eat, @Eats.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc26: %.e36 = impl_witness_access constants.%impl_witness.9a5, element0 [concrete = constants.%Eat.73e] +// CHECK:STDOUT: %impl.elem0.loc26: %.aa8 = impl_witness_access constants.%impl_witness.9a5, element0 [concrete = constants.%Eat.73e] // CHECK:STDOUT: %Eat.call.loc26: init %empty_tuple.type = call %impl.elem0.loc26() // CHECK:STDOUT: %.loc28_6.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %Goat.ref.loc28_11: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] @@ -537,7 +537,7 @@ fn F() { // CHECK:STDOUT: %.loc28_8: ref %Goat = converted %.loc28_6.1, %.loc28_6.4 // CHECK:STDOUT: %Goat.ref.loc28_21: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] // CHECK:STDOUT: %Animal.ref.loc28: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %Animal.facet.loc28: %Animal.type = facet_value constants.%Goat, constants.%impl_witness.1bc [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc28: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness.1bc) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc28_26: %Animal.type = converted %Goat.ref.loc28_21, %Animal.facet.loc28 [concrete = constants.%Animal.facet] // CHECK:STDOUT: %as_type.loc28: type = facet_access_type %.loc28_26 [concrete = constants.%Goat] // CHECK:STDOUT: %.loc28_35: type = converted %.loc28_26, %as_type.loc28 [concrete = constants.%Goat] @@ -551,12 +551,12 @@ fn F() { // CHECK:STDOUT: %.loc29_8: ref %Goat = converted %.loc29_6.1, %.loc29_6.4 // CHECK:STDOUT: %Goat.ref.loc29_21: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] // CHECK:STDOUT: %Animal.ref.loc29: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %Animal.facet.loc29: %Animal.type = facet_value constants.%Goat, constants.%impl_witness.1bc [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc29: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness.1bc) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc29_26: %Animal.type = converted %Goat.ref.loc29_21, %Animal.facet.loc29 [concrete = constants.%Animal.facet] // CHECK:STDOUT: %as_type.loc29: type = facet_access_type %.loc29_26 [concrete = constants.%Goat] // CHECK:STDOUT: %.loc29_35: type = converted %.loc29_26, %as_type.loc29 [concrete = constants.%Goat] // CHECK:STDOUT: %Eat.ref.loc29: %Eats.assoc_type = name_ref Eat, @Eats.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc29: %.e36 = impl_witness_access constants.%impl_witness.9a5, element0 [concrete = constants.%Eat.73e] +// CHECK:STDOUT: %impl.elem0.loc29: %.aa8 = impl_witness_access constants.%impl_witness.9a5, element0 [concrete = constants.%Eat.73e] // CHECK:STDOUT: %Eat.call.loc29: init %empty_tuple.type = call %impl.elem0.loc29() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_facet_value.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_facet_value.carbon index 7ad03468f11c..6266b696d826 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_facet_value.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_facet_value.carbon @@ -150,8 +150,8 @@ fn F() { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness [concrete] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Animal.type, %impl_witness [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness) [concrete] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Animal.type, (%impl_witness) [concrete] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -244,9 +244,9 @@ fn F() { // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] // CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc19_13: %Animal.type = converted %Goat.ref, %Animal.facet [concrete = constants.%Animal.facet] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value constants.%Animal.type, constants.%impl_witness [concrete = constants.%Eats.facet] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value constants.%Animal.type, (constants.%impl_witness) [concrete = constants.%Eats.facet] // CHECK:STDOUT: %.loc19_22: %Eats.type = converted %.loc19_13, %Eats.facet [concrete = constants.%Eats.facet] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [concrete = constants.%Feed.specific_fn] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn() diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_itself.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_itself.carbon index f024230e1392..616c0b8babca 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_itself.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_itself.carbon @@ -148,9 +148,9 @@ fn F() { // CHECK:STDOUT: %impl_witness: = impl_witness () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness) [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet) [concrete] -// CHECK:STDOUT: %FeedAnimal.specific_fn.9d8: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] +// CHECK:STDOUT: %FeedAnimal.specific_fn.5d0: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -245,7 +245,7 @@ fn F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %HandleAnimal.ref: %HandleAnimal.type = name_ref HandleAnimal, file.%HandleAnimal.decl [concrete = constants.%HandleAnimal] // CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc16: %Animal.type = converted %Goat.ref, %Animal.facet [concrete = constants.%Animal.facet] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal.ref, @HandleAnimal(constants.%Animal.facet) [concrete = constants.%HandleAnimal.specific_fn] // CHECK:STDOUT: %HandleAnimal.call: init %empty_tuple.type = call %HandleAnimal.specific_fn() @@ -271,7 +271,7 @@ fn F() { // CHECK:STDOUT: %T.patt.loc10_17.2 => constants.%Animal.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc10_31.2 => constants.%FeedAnimal.specific_fn.9d8 +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc10_31.2 => constants.%FeedAnimal.specific_fn.5d0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_narrowed_facet_type.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_narrowed_facet_type.carbon index d9bd8a07ac7c..4b33c2a6f970 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_narrowed_facet_type.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_to_narrowed_facet_type.carbon @@ -102,7 +102,7 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %Op.type.28d: type = fn_type @Op.2, @impl(%T) [symbolic] // CHECK:STDOUT: %Op.902: %Op.type.28d = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, %impl_witness [symbolic] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, (%impl_witness) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -336,8 +336,8 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl(type) [concrete] // CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness type [concrete] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, %impl_witness.3ea [concrete] -// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete] +// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %Animal.type, %Op.444 [concrete] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.444, @Op.2(type) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %Animal.type, %Op.specific_fn [concrete] @@ -348,8 +348,8 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.680: = require_complete_type %U.as_type [symbolic] -// CHECK:STDOUT: %U.as_wit: = facet_access_witness %U [symbolic] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.as_type, %U.as_wit [symbolic] +// CHECK:STDOUT: %U.as_wit.iface0: = facet_access_witness %U, element0 [symbolic] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.as_type, (%U.as_wit.iface0) [symbolic] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -404,7 +404,7 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %.loc10_28.1: type = splice_block %.loc10_28.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %impl.elem0: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc10_28.1: = bound_method %Animal.ref, %impl.elem0 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc10_28.2: = bound_method %Animal.ref, %specific_fn [concrete = constants.%bound_method] @@ -498,19 +498,19 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @HandleAnimal.%U.as_type.loc10_39.2 (%U.as_type) [symbolic = %require_complete (constants.%require_complete.680)] -// CHECK:STDOUT: %U.as_wit.loc10_50.3: = facet_access_witness %U.loc10_17.2 [symbolic = %U.as_wit.loc10_50.3 (constants.%U.as_wit)] -// CHECK:STDOUT: %Eats.facet.loc10_50.3: %Eats.type = facet_value %U.as_type.loc10_39.2, %U.as_wit.loc10_50.3 [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %U.as_wit.iface0.loc10_50.3: = facet_access_witness %U.loc10_17.2, element0 [symbolic = %U.as_wit.iface0.loc10_50.3 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %Eats.facet.loc10_50.3: %Eats.type = facet_value %U.as_type.loc10_39.2, (%U.as_wit.iface0.loc10_50.3) [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc10_44.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc10_50.3) [symbolic = %Feed.specific_fn.loc10_44.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%U.patt.loc10_17.1: %facet_type](%a.param_patt: @HandleAnimal.%U.as_type.loc10_39.2 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] // CHECK:STDOUT: %a.ref: @HandleAnimal.%U.as_type.loc10_39.2 (%U.as_type) = name_ref a, %a -// CHECK:STDOUT: %U.as_wit.loc10_50.1: = facet_access_witness constants.%U [symbolic = %U.as_wit.loc10_50.3 (constants.%U.as_wit)] -// CHECK:STDOUT: %Eats.facet.loc10_50.1: %Eats.type = facet_value constants.%U.as_type, %U.as_wit.loc10_50.1 [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %U.as_wit.iface0.loc10_50.1: = facet_access_witness constants.%U, element0 [symbolic = %U.as_wit.iface0.loc10_50.3 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %Eats.facet.loc10_50.1: %Eats.type = facet_value constants.%U.as_type, (%U.as_wit.iface0.loc10_50.1) [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %.loc10_50.1: %Eats.type = converted constants.%U.as_type, %Eats.facet.loc10_50.1 [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] -// CHECK:STDOUT: %U.as_wit.loc10_50.2: = facet_access_witness constants.%U [symbolic = %U.as_wit.loc10_50.3 (constants.%U.as_wit)] -// CHECK:STDOUT: %Eats.facet.loc10_50.2: %Eats.type = facet_value constants.%U.as_type, %U.as_wit.loc10_50.2 [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %U.as_wit.iface0.loc10_50.2: = facet_access_witness constants.%U, element0 [symbolic = %U.as_wit.iface0.loc10_50.3 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %Eats.facet.loc10_50.2: %Eats.type = facet_value constants.%U.as_type, (%U.as_wit.iface0.loc10_50.2) [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %.loc10_50.2: %Eats.type = converted constants.%U.as_type, %Eats.facet.loc10_50.2 [symbolic = %Eats.facet.loc10_50.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc10_44.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [symbolic = %Feed.specific_fn.loc10_44.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc10_44.1(%a.ref) @@ -603,8 +603,8 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl(type) [concrete] // CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness type [concrete] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, %impl_witness.3ea [concrete] -// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete] +// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] // CHECK:STDOUT: %Op.bound.9f8: = bound_method %Tame.type, %Op.444 [concrete] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.444, @Op.2(type) [concrete] // CHECK:STDOUT: %bound_method.a56: = bound_method %Tame.type, %Op.specific_fn [concrete] @@ -627,8 +627,9 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %HandleTameAnimal.type: type = fn_type @HandleTameAnimal [concrete] // CHECK:STDOUT: %HandleTameAnimal: %HandleTameAnimal.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.40f: = require_complete_type %W.as_type [symbolic] -// CHECK:STDOUT: %W.as_wit: = facet_access_witness %W [symbolic] -// CHECK:STDOUT: %facet_value: %facet_type.6ff = facet_value %W.as_type, %W.as_wit [symbolic] +// CHECK:STDOUT: %W.as_wit.iface0: = facet_access_witness %W, element0 [symbolic] +// CHECK:STDOUT: %W.as_wit.iface2: = facet_access_witness %W, element2 [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.6ff = facet_value %W.as_type, (%W.as_wit.iface0, %W.as_wit.iface2) [symbolic] // CHECK:STDOUT: %FeedTame.specific_fn: = specific_function %FeedTame, @FeedTame(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -670,7 +671,7 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.3 [concrete = constants.%facet_type.6ff] { // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %impl.elem0: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc9_22.1: = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%Op.bound.9f8] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc9_22.2: = bound_method %Tame.ref, %specific_fn [concrete = constants.%bound_method.a56] @@ -695,13 +696,13 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %.loc11_39.1: type = splice_block %.loc11_39.3 [concrete = constants.%facet_type.a95] { // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %impl.elem0.loc11_30: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc11_30: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc11_30.1: = bound_method %Eats.ref, %impl.elem0.loc11_30 [concrete = constants.%Op.bound.d46] // CHECK:STDOUT: %specific_fn.loc11_30: = specific_function %impl.elem0.loc11_30, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %Eats.ref, %specific_fn.loc11_30 [concrete = constants.%bound_method.f8f] // CHECK:STDOUT: %type.and.loc11_30: init type = call %bound_method.loc11_30.2(%Eats.ref, %Animal.ref) [concrete = constants.%facet_type.c3f] // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] -// CHECK:STDOUT: %impl.elem0.loc11_39: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc11_39: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc11_39.1: = bound_method %type.and.loc11_30, %impl.elem0.loc11_39 [concrete = constants.%Op.bound.c0a] // CHECK:STDOUT: %specific_fn.loc11_39: = specific_function %impl.elem0.loc11_39, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_39.2: = bound_method %type.and.loc11_30, %specific_fn.loc11_39 [concrete = constants.%bound_method.7fc] @@ -805,21 +806,22 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @HandleTameAnimal.%W.as_type.loc11_50.2 (%W.as_type) [symbolic = %require_complete (constants.%require_complete.40f)] -// CHECK:STDOUT: %W.as_wit.loc12_13.5: = facet_access_witness %W.loc11_21.2 [symbolic = %W.as_wit.loc12_13.5 (constants.%W.as_wit)] -// CHECK:STDOUT: %facet_value.loc12_13.3: %facet_type.6ff = facet_value %W.as_type.loc11_50.2, %W.as_wit.loc12_13.5 [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %W.as_wit.iface0.loc12_13.3: = facet_access_witness %W.loc11_21.2, element0 [symbolic = %W.as_wit.iface0.loc12_13.3 (constants.%W.as_wit.iface0)] +// CHECK:STDOUT: %W.as_wit.iface2.loc12_13.3: = facet_access_witness %W.loc11_21.2, element2 [symbolic = %W.as_wit.iface2.loc12_13.3 (constants.%W.as_wit.iface2)] +// CHECK:STDOUT: %facet_value.loc12_13.3: %facet_type.6ff = facet_value %W.as_type.loc11_50.2, (%W.as_wit.iface0.loc12_13.3, %W.as_wit.iface2.loc12_13.3) [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc12_3.2: = specific_function constants.%FeedTame, @FeedTame(%facet_value.loc12_13.3) [symbolic = %FeedTame.specific_fn.loc12_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%W.patt.loc11_21.1: %facet_type.a95](%w.param_patt: @HandleTameAnimal.%W.as_type.loc11_50.2 (%W.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedTame.ref: %FeedTame.type = name_ref FeedTame, file.%FeedTame.decl [concrete = constants.%FeedTame] // CHECK:STDOUT: %w.ref: @HandleTameAnimal.%W.as_type.loc11_50.2 (%W.as_type) = name_ref w, %w -// CHECK:STDOUT: %W.as_wit.loc12_13.1: = facet_access_witness constants.%W [symbolic = %W.as_wit.loc12_13.5 (constants.%W.as_wit)] -// CHECK:STDOUT: %W.as_wit.loc12_13.2: = facet_access_witness constants.%W [symbolic = %W.as_wit.loc12_13.5 (constants.%W.as_wit)] -// CHECK:STDOUT: %facet_value.loc12_13.1: %facet_type.6ff = facet_value constants.%W.as_type, %W.as_wit.loc12_13.1 [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %W.as_wit.iface0.loc12_13.1: = facet_access_witness constants.%W, element0 [symbolic = %W.as_wit.iface0.loc12_13.3 (constants.%W.as_wit.iface0)] +// CHECK:STDOUT: %W.as_wit.iface2.loc12_13.1: = facet_access_witness constants.%W, element2 [symbolic = %W.as_wit.iface2.loc12_13.3 (constants.%W.as_wit.iface2)] +// CHECK:STDOUT: %facet_value.loc12_13.1: %facet_type.6ff = facet_value constants.%W.as_type, (%W.as_wit.iface0.loc12_13.1, %W.as_wit.iface2.loc12_13.1) [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc12_13.1: %facet_type.6ff = converted constants.%W.as_type, %facet_value.loc12_13.1 [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] -// CHECK:STDOUT: %W.as_wit.loc12_13.3: = facet_access_witness constants.%W [symbolic = %W.as_wit.loc12_13.5 (constants.%W.as_wit)] -// CHECK:STDOUT: %W.as_wit.loc12_13.4: = facet_access_witness constants.%W [symbolic = %W.as_wit.loc12_13.5 (constants.%W.as_wit)] -// CHECK:STDOUT: %facet_value.loc12_13.2: %facet_type.6ff = facet_value constants.%W.as_type, %W.as_wit.loc12_13.3 [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] +// CHECK:STDOUT: %W.as_wit.iface0.loc12_13.2: = facet_access_witness constants.%W, element0 [symbolic = %W.as_wit.iface0.loc12_13.3 (constants.%W.as_wit.iface0)] +// CHECK:STDOUT: %W.as_wit.iface2.loc12_13.2: = facet_access_witness constants.%W, element2 [symbolic = %W.as_wit.iface2.loc12_13.3 (constants.%W.as_wit.iface2)] +// CHECK:STDOUT: %facet_value.loc12_13.2: %facet_type.6ff = facet_value constants.%W.as_type, (%W.as_wit.iface0.loc12_13.2, %W.as_wit.iface2.loc12_13.2) [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] // CHECK:STDOUT: %.loc12_13.2: %facet_type.6ff = converted constants.%W.as_type, %facet_value.loc12_13.2 [symbolic = %facet_value.loc12_13.3 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc12_3.1: = specific_function %FeedTame.ref, @FeedTame(constants.%facet_value) [symbolic = %FeedTame.specific_fn.loc12_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: %FeedTame.call: init %empty_tuple.type = call %FeedTame.specific_fn.loc12_3.1(%w.ref) @@ -915,8 +917,8 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl.f92(type) [concrete] // CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness type [concrete] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, %impl_witness.3ea [concrete] -// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete] +// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] // CHECK:STDOUT: %Op.bound.9f8: = bound_method %Tame.type, %Op.444 [concrete] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.444, @Op.2(type) [concrete] // CHECK:STDOUT: %bound_method.a56: = bound_method %Tame.type, %Op.specific_fn [concrete] @@ -936,9 +938,9 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %HandleTameAnimal2.type: type = fn_type @HandleTameAnimal2 [concrete] // CHECK:STDOUT: %HandleTameAnimal2: %HandleTameAnimal2.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.ba9: = require_complete_type %W.as_type [symbolic] -// CHECK:STDOUT: %W.as_wit: = facet_access_witness %W [symbolic] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type, %W.as_wit [symbolic] -// CHECK:STDOUT: %impl_witness.c31: = impl_witness (), @impl.e7b(%Animal.facet) [symbolic] +// CHECK:STDOUT: %W.as_wit.iface0: = facet_access_witness %W, element0 [symbolic] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type, (%W.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %impl_witness.1d8: = impl_witness (), @impl.e7b(%Animal.facet) [symbolic] // CHECK:STDOUT: %ImplicitAs.type.d62: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] // CHECK:STDOUT: %Self.519: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic] // CHECK:STDOUT: %Convert.type.275: type = fn_type @Convert, @ImplicitAs(%T) [symbolic] @@ -1011,7 +1013,7 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %.loc11_23.1: type = splice_block %.loc11_23.3 [concrete = constants.%facet_type.6ff] { // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] -// CHECK:STDOUT: %impl.elem0: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc11_23.1: = bound_method %Tame.ref, %impl.elem0 [concrete = constants.%Op.bound.9f8] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_23.2: = bound_method %Tame.ref, %specific_fn [concrete = constants.%bound_method.a56] @@ -1036,7 +1038,7 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %.loc13_33.1: type = splice_block %.loc13_33.3 [concrete = constants.%facet_type.65c] { // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: %Tame.ref: type = name_ref Tame, file.%Tame.decl [concrete = constants.%Tame.type] -// CHECK:STDOUT: %impl.elem0: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc13_33.1: = bound_method %Animal.ref, %impl.elem0 [concrete = constants.%Op.bound.fe3] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc13_33.2: = bound_method %Animal.ref, %specific_fn [concrete = constants.%bound_method.a26] @@ -1172,8 +1174,8 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @HandleTameAnimal2.%W.as_type.loc13_44.2 (%W.as_type) [symbolic = %require_complete (constants.%require_complete.ba9)] -// CHECK:STDOUT: %W.as_wit.loc24_14.3: = facet_access_witness %W.loc13_22.2 [symbolic = %W.as_wit.loc24_14.3 (constants.%W.as_wit)] -// CHECK:STDOUT: %Animal.facet.loc24_14.3: %Animal.type = facet_value %W.as_type.loc13_44.2, %W.as_wit.loc24_14.3 [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] +// CHECK:STDOUT: %W.as_wit.iface0.loc24_14.3: = facet_access_witness %W.loc13_22.2, element0 [symbolic = %W.as_wit.iface0.loc24_14.3 (constants.%W.as_wit.iface0)] +// CHECK:STDOUT: %Animal.facet.loc24_14.3: %Animal.type = facet_value %W.as_type.loc13_44.2, (%W.as_wit.iface0.loc24_14.3) [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%W.patt.loc13_22.1: %facet_type.65c](%w.param_patt: @HandleTameAnimal2.%W.as_type.loc13_44.2 (%W.as_type)) { // CHECK:STDOUT: !entry: @@ -1181,11 +1183,11 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %w.ref: @HandleTameAnimal2.%W.as_type.loc13_44.2 (%W.as_type) = name_ref w, %w // CHECK:STDOUT: %W.as_type.loc24: type = facet_access_type constants.%W [symbolic = %W.as_type.loc13_44.2 (constants.%W.as_type)] // CHECK:STDOUT: %.loc24_14.1: type = converted constants.%W, %W.as_type.loc24 [symbolic = %W.as_type.loc13_44.2 (constants.%W.as_type)] -// CHECK:STDOUT: %W.as_wit.loc24_14.1: = facet_access_witness constants.%W [symbolic = %W.as_wit.loc24_14.3 (constants.%W.as_wit)] -// CHECK:STDOUT: %Animal.facet.loc24_14.1: %Animal.type = facet_value constants.%W.as_type, %W.as_wit.loc24_14.1 [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] +// CHECK:STDOUT: %W.as_wit.iface0.loc24_14.1: = facet_access_witness constants.%W, element0 [symbolic = %W.as_wit.iface0.loc24_14.3 (constants.%W.as_wit.iface0)] +// CHECK:STDOUT: %Animal.facet.loc24_14.1: %Animal.type = facet_value constants.%W.as_type, (%W.as_wit.iface0.loc24_14.1) [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %.loc24_14.2: %Animal.type = converted %.loc24_14.1, %Animal.facet.loc24_14.1 [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] -// CHECK:STDOUT: %W.as_wit.loc24_14.2: = facet_access_witness constants.%W [symbolic = %W.as_wit.loc24_14.3 (constants.%W.as_wit)] -// CHECK:STDOUT: %Animal.facet.loc24_14.2: %Animal.type = facet_value constants.%W.as_type, %W.as_wit.loc24_14.2 [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] +// CHECK:STDOUT: %W.as_wit.iface0.loc24_14.2: = facet_access_witness constants.%W, element0 [symbolic = %W.as_wit.iface0.loc24_14.3 (constants.%W.as_wit.iface0)] +// CHECK:STDOUT: %Animal.facet.loc24_14.2: %Animal.type = facet_value constants.%W.as_type, (%W.as_wit.iface0.loc24_14.2) [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %.loc24_14.3: %Animal.type = converted constants.%W.as_type, %Animal.facet.loc24_14.2 [symbolic = %Animal.facet.loc24_14.3 (constants.%Animal.facet)] // CHECK:STDOUT: %.loc24_14.4: %facet_type.6ff = converted constants.%W.as_type, [concrete = ] // CHECK:STDOUT: return @@ -1260,7 +1262,7 @@ fn HandleTameAnimal2[W:! Animal & Tame](w: W) { // CHECK:STDOUT: %A.loc9_14.2 => constants.%Animal.facet // CHECK:STDOUT: %A.patt.loc9_14.2 => constants.%Animal.facet // CHECK:STDOUT: %A.as_type.loc9_26.2 => constants.%W.as_type -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.c31 +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.1d8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_blanket_impl.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_blanket_impl.carbon index 454eb338194a..539e235aab5d 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_blanket_impl.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_blanket_impl.carbon @@ -150,7 +150,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.234: = require_complete_type %T.as_type.2ad [symbolic] // CHECK:STDOUT: %impl_witness.11010a.2: = impl_witness (), @impl(%T.fd4) [symbolic] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %T.as_type.2ad, %impl_witness.11010a.2 [symbolic] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %T.as_type.2ad, (%impl_witness.11010a.2) [symbolic] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -266,7 +266,7 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @HandleAnimal.%T.as_type.loc13_32.2 (%T.as_type.2ad) [symbolic = %require_complete (constants.%require_complete.234)] // CHECK:STDOUT: %impl_witness: = impl_witness (), @impl(%T.loc13_17.2) [symbolic = %impl_witness (constants.%impl_witness.11010a.2)] -// CHECK:STDOUT: %Eats.facet.loc13_43.3: %Eats.type = facet_value %T.as_type.loc13_32.2, %impl_witness [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc13_43.3: %Eats.type = facet_value %T.as_type.loc13_32.2, (%impl_witness) [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc13_37.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc13_43.3) [symbolic = %Feed.specific_fn.loc13_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc13_17.1: %Animal.type](%a.param_patt: @HandleAnimal.%T.as_type.loc13_32.2 (%T.as_type.2ad)) { @@ -277,13 +277,13 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %.loc13_43.1: type = converted constants.%T.fd4, %T.as_type.loc13_43.1 [symbolic = %T.as_type.loc13_32.2 (constants.%T.as_type.2ad)] // CHECK:STDOUT: %.loc13_43.2: %Animal.type = converted %.loc13_43.1, constants.%T.fd4 [symbolic = %T.loc13_17.2 (constants.%T.fd4)] // CHECK:STDOUT: %.loc13_43.3: %Animal.type = converted constants.%T.as_type.2ad, constants.%T.fd4 [symbolic = %T.loc13_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %Eats.facet.loc13_43.1: %Eats.type = facet_value constants.%T.as_type.2ad, constants.%impl_witness.11010a.2 [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc13_43.1: %Eats.type = facet_value constants.%T.as_type.2ad, (constants.%impl_witness.11010a.2) [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %.loc13_43.4: %Eats.type = converted constants.%T.as_type.2ad, %Eats.facet.loc13_43.1 [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %T.as_type.loc13_43.2: type = facet_access_type constants.%T.fd4 [symbolic = %T.as_type.loc13_32.2 (constants.%T.as_type.2ad)] // CHECK:STDOUT: %.loc13_43.5: type = converted constants.%T.fd4, %T.as_type.loc13_43.2 [symbolic = %T.as_type.loc13_32.2 (constants.%T.as_type.2ad)] // CHECK:STDOUT: %.loc13_43.6: %Animal.type = converted %.loc13_43.5, constants.%T.fd4 [symbolic = %T.loc13_17.2 (constants.%T.fd4)] // CHECK:STDOUT: %.loc13_43.7: %Animal.type = converted constants.%T.as_type.2ad, constants.%T.fd4 [symbolic = %T.loc13_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %Eats.facet.loc13_43.2: %Eats.type = facet_value constants.%T.as_type.2ad, constants.%impl_witness.11010a.2 [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc13_43.2: %Eats.type = facet_value constants.%T.as_type.2ad, (constants.%impl_witness.11010a.2) [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %.loc13_43.8: %Eats.type = converted constants.%T.as_type.2ad, %Eats.facet.loc13_43.2 [symbolic = %Eats.facet.loc13_43.3 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc13_37.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [symbolic = %Feed.specific_fn.loc13_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc13_37.1(%a.ref) diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_generic_facet_value_value.carbon index 2addc63d9865..efabec902c35 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_generic_facet_value_value.carbon @@ -188,20 +188,20 @@ fn F() { // CHECK:STDOUT: %Eats.type.f54c3d.2: type = facet_type <@Eats, @Eats(%Food.as_type.fae)> [symbolic] // CHECK:STDOUT: %require_complete.42532a.2: = require_complete_type %Eats.type.f54c3d.2 [symbolic] // CHECK:STDOUT: %impl_witness.c7c36b.2: = impl_witness (), @impl.009(%T.fd4, %Food.5fe) [symbolic] -// CHECK:STDOUT: %Eats.facet.b56: %Eats.type.f54c3d.2 = facet_value %T.as_type.2ad, %impl_witness.c7c36b.2 [symbolic] -// CHECK:STDOUT: %Feed.specific_fn.f4b: = specific_function %Feed, @Feed(%Food.5fe, %Eats.facet.b56) [symbolic] +// CHECK:STDOUT: %Eats.facet.97e: %Eats.type.f54c3d.2 = facet_value %T.as_type.2ad, (%impl_witness.c7c36b.2) [symbolic] +// CHECK:STDOUT: %Feed.specific_fn.387: = specific_function %Feed, @Feed(%Food.5fe, %Eats.facet.97e) [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] // CHECK:STDOUT: %Grass.val: %Grass = struct_value () [concrete] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness.1bc [concrete] -// CHECK:STDOUT: %Edible.facet: %Edible.type = facet_value %Grass, %impl_witness.1bc [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness.1bc) [concrete] +// CHECK:STDOUT: %Edible.facet: %Edible.type = facet_value %Grass, (%impl_witness.1bc) [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet, %Edible.facet) [concrete] // CHECK:STDOUT: %Eats.type.1ae: type = facet_type <@Eats, @Eats(%Grass)> [concrete] // CHECK:STDOUT: %complete_type.004: = complete_type_witness %Eats.type.1ae [concrete] -// CHECK:STDOUT: %impl_witness.15d: = impl_witness (), @impl.009(%Animal.facet, %Edible.facet) [concrete] -// CHECK:STDOUT: %Eats.facet.c76: %Eats.type.1ae = facet_value %Goat, %impl_witness.15d [concrete] -// CHECK:STDOUT: %Feed.specific_fn.e8d: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.c76) [concrete] +// CHECK:STDOUT: %impl_witness.4f1: = impl_witness (), @impl.009(%Animal.facet, %Edible.facet) [concrete] +// CHECK:STDOUT: %Eats.facet.fa6: %Eats.type.1ae = facet_value %Goat, (%impl_witness.4f1) [concrete] +// CHECK:STDOUT: %Feed.specific_fn.d82: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.fa6) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -434,8 +434,8 @@ fn F() { // CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.as_type.loc23_56.2)> [symbolic = %Eats.type (constants.%Eats.type.f54c3d.2)] // CHECK:STDOUT: %require_complete.loc23_76: = require_complete_type @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) [symbolic = %require_complete.loc23_76 (constants.%require_complete.42532a.2)] // CHECK:STDOUT: %impl_witness: = impl_witness (), @impl.009(%T.loc23_17.2, %Food.loc23_29.2) [symbolic = %impl_witness (constants.%impl_witness.c7c36b.2)] -// CHECK:STDOUT: %Eats.facet.loc23_76.2: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = facet_value %T.as_type.loc23_47.2, %impl_witness [symbolic = %Eats.facet.loc23_76.2 (constants.%Eats.facet.b56)] -// CHECK:STDOUT: %Feed.specific_fn.loc23_64.2: = specific_function constants.%Feed, @Feed(%Food.loc23_29.2, %Eats.facet.loc23_76.2) [symbolic = %Feed.specific_fn.loc23_64.2 (constants.%Feed.specific_fn.f4b)] +// CHECK:STDOUT: %Eats.facet.loc23_76.2: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = facet_value %T.as_type.loc23_47.2, (%impl_witness) [symbolic = %Eats.facet.loc23_76.2 (constants.%Eats.facet.97e)] +// CHECK:STDOUT: %Feed.specific_fn.loc23_64.2: = specific_function constants.%Feed, @Feed(%Food.loc23_29.2, %Eats.facet.loc23_76.2) [symbolic = %Feed.specific_fn.loc23_64.2 (constants.%Feed.specific_fn.387)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc23_17.1: %Animal.type, %Food.patt.loc23_29.1: %Edible.type](%a.param_patt: @HandleAnimal.%T.as_type.loc23_47.2 (%T.as_type.2ad), %food.param_patt: @HandleAnimal.%Food.as_type.loc23_56.2 (%Food.as_type.fae)) { // CHECK:STDOUT: !entry: @@ -450,9 +450,9 @@ fn F() { // CHECK:STDOUT: %.loc23_76.5: %Animal.type = converted %.loc23_76.4, constants.%T.fd4 [symbolic = %T.loc23_17.2 (constants.%T.fd4)] // CHECK:STDOUT: %.loc23_76.6: %Edible.type = converted constants.%Food.as_type.fae, constants.%Food.5fe [symbolic = %Food.loc23_29.2 (constants.%Food.5fe)] // CHECK:STDOUT: %.loc23_76.7: %Animal.type = converted constants.%T.as_type.2ad, constants.%T.fd4 [symbolic = %T.loc23_17.2 (constants.%T.fd4)] -// CHECK:STDOUT: %Eats.facet.loc23_76.1: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = facet_value constants.%T.as_type.2ad, constants.%impl_witness.c7c36b.2 [symbolic = %Eats.facet.loc23_76.2 (constants.%Eats.facet.b56)] -// CHECK:STDOUT: %.loc23_76.8: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = converted constants.%T.as_type.2ad, %Eats.facet.loc23_76.1 [symbolic = %Eats.facet.loc23_76.2 (constants.%Eats.facet.b56)] -// CHECK:STDOUT: %Feed.specific_fn.loc23_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.5fe, %.loc23_76.8) [symbolic = %Feed.specific_fn.loc23_64.2 (constants.%Feed.specific_fn.f4b)] +// CHECK:STDOUT: %Eats.facet.loc23_76.1: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = facet_value constants.%T.as_type.2ad, (constants.%impl_witness.c7c36b.2) [symbolic = %Eats.facet.loc23_76.2 (constants.%Eats.facet.97e)] +// CHECK:STDOUT: %.loc23_76.8: @HandleAnimal.%Eats.type (%Eats.type.f54c3d.2) = converted constants.%T.as_type.2ad, %Eats.facet.loc23_76.1 [symbolic = %Eats.facet.loc23_76.2 (constants.%Eats.facet.97e)] +// CHECK:STDOUT: %Feed.specific_fn.loc23_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.5fe, %.loc23_76.8) [symbolic = %Feed.specific_fn.loc23_64.2 (constants.%Feed.specific_fn.387)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc23_64.1(%a.ref, %food.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -473,13 +473,13 @@ fn F() { // CHECK:STDOUT: %.loc26_29.3: init %Grass = class_init (), %.loc26_29.2 [concrete = constants.%Grass.val] // CHECK:STDOUT: %.loc26_29.4: ref %Grass = temporary %.loc26_29.2, %.loc26_29.3 // CHECK:STDOUT: %.loc26_31.1: ref %Grass = converted %.loc26_29.1, %.loc26_29.4 -// CHECK:STDOUT: %Animal.facet.loc26_39.1: %Animal.type = facet_value constants.%Goat, constants.%impl_witness.1bc [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc26_39.1: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness.1bc) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc26_39.1: %Animal.type = converted constants.%Goat, %Animal.facet.loc26_39.1 [concrete = constants.%Animal.facet] -// CHECK:STDOUT: %Animal.facet.loc26_39.2: %Animal.type = facet_value constants.%Goat, constants.%impl_witness.1bc [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc26_39.2: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness.1bc) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc26_39.2: %Animal.type = converted constants.%Goat, %Animal.facet.loc26_39.2 [concrete = constants.%Animal.facet] -// CHECK:STDOUT: %Edible.facet.loc26_39.1: %Edible.type = facet_value constants.%Grass, constants.%impl_witness.1bc [concrete = constants.%Edible.facet] +// CHECK:STDOUT: %Edible.facet.loc26_39.1: %Edible.type = facet_value constants.%Grass, (constants.%impl_witness.1bc) [concrete = constants.%Edible.facet] // CHECK:STDOUT: %.loc26_39.3: %Edible.type = converted constants.%Grass, %Edible.facet.loc26_39.1 [concrete = constants.%Edible.facet] -// CHECK:STDOUT: %Edible.facet.loc26_39.2: %Edible.type = facet_value constants.%Grass, constants.%impl_witness.1bc [concrete = constants.%Edible.facet] +// CHECK:STDOUT: %Edible.facet.loc26_39.2: %Edible.type = facet_value constants.%Grass, (constants.%impl_witness.1bc) [concrete = constants.%Edible.facet] // CHECK:STDOUT: %.loc26_39.4: %Edible.type = converted constants.%Grass, %Edible.facet.loc26_39.2 [concrete = constants.%Edible.facet] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal.ref, @HandleAnimal(constants.%Animal.facet, constants.%Edible.facet) [concrete = constants.%HandleAnimal.specific_fn] // CHECK:STDOUT: %.loc26_19.2: %Goat = bind_value %.loc26_19.1 @@ -574,8 +574,8 @@ fn F() { // CHECK:STDOUT: %Food.patt.loc22_9.2 => constants.%Food.5fe // CHECK:STDOUT: %Food.as_type.loc22_37.2 => constants.%Food.as_type.fae // CHECK:STDOUT: %Eats.type.loc22_37.2 => constants.%Eats.type.f54c3d.2 -// CHECK:STDOUT: %T.loc22_24.2 => constants.%Eats.facet.b56 -// CHECK:STDOUT: %T.patt.loc22_24.2 => constants.%Eats.facet.b56 +// CHECK:STDOUT: %T.loc22_24.2 => constants.%Eats.facet.97e +// CHECK:STDOUT: %T.patt.loc22_24.2 => constants.%Eats.facet.97e // CHECK:STDOUT: %T.as_type.loc22_43.2 => constants.%T.as_type.2ad // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -583,13 +583,13 @@ fn F() { // CHECK:STDOUT: %require_complete.loc22_50 => constants.%require_complete.444 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Food.5fe, constants.%Eats.facet.b56) { +// CHECK:STDOUT: specific @Feed(constants.%Food.5fe, constants.%Eats.facet.97e) { // CHECK:STDOUT: %Food.loc22_9.2 => constants.%Food.5fe // CHECK:STDOUT: %Food.patt.loc22_9.2 => constants.%Food.5fe // CHECK:STDOUT: %Food.as_type.loc22_37.2 => constants.%Food.as_type.fae // CHECK:STDOUT: %Eats.type.loc22_37.2 => constants.%Eats.type.f54c3d.2 -// CHECK:STDOUT: %T.loc22_24.2 => constants.%Eats.facet.b56 -// CHECK:STDOUT: %T.patt.loc22_24.2 => constants.%Eats.facet.b56 +// CHECK:STDOUT: %T.loc22_24.2 => constants.%Eats.facet.97e +// CHECK:STDOUT: %T.patt.loc22_24.2 => constants.%Eats.facet.97e // CHECK:STDOUT: %T.as_type.loc22_43.2 => constants.%T.as_type.2ad // CHECK:STDOUT: } // CHECK:STDOUT: @@ -612,9 +612,9 @@ fn F() { // CHECK:STDOUT: %require_complete.loc23_54 => constants.%complete_type.357 // CHECK:STDOUT: %Eats.type => constants.%Eats.type.1ae // CHECK:STDOUT: %require_complete.loc23_76 => constants.%complete_type.004 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.15d -// CHECK:STDOUT: %Eats.facet.loc23_76.2 => constants.%Eats.facet.c76 -// CHECK:STDOUT: %Feed.specific_fn.loc23_64.2 => constants.%Feed.specific_fn.e8d +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.4f1 +// CHECK:STDOUT: %Eats.facet.loc23_76.2 => constants.%Eats.facet.fa6 +// CHECK:STDOUT: %Feed.specific_fn.loc23_64.2 => constants.%Feed.specific_fn.d82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats(constants.%Grass) { @@ -635,16 +635,16 @@ fn F() { // CHECK:STDOUT: %U.as_type.loc17_49.2 => constants.%Grass // CHECK:STDOUT: %Eats.type.loc17_49.2 => constants.%Eats.type.1ae // CHECK:STDOUT: %require_complete => constants.%complete_type.004 -// CHECK:STDOUT: %impl_witness => constants.%impl_witness.15d +// CHECK:STDOUT: %impl_witness => constants.%impl_witness.4f1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.c76) { +// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.fa6) { // CHECK:STDOUT: %Food.loc22_9.2 => constants.%Edible.facet // CHECK:STDOUT: %Food.patt.loc22_9.2 => constants.%Edible.facet // CHECK:STDOUT: %Food.as_type.loc22_37.2 => constants.%Grass // CHECK:STDOUT: %Eats.type.loc22_37.2 => constants.%Eats.type.1ae -// CHECK:STDOUT: %T.loc22_24.2 => constants.%Eats.facet.c76 -// CHECK:STDOUT: %T.patt.loc22_24.2 => constants.%Eats.facet.c76 +// CHECK:STDOUT: %T.loc22_24.2 => constants.%Eats.facet.fa6 +// CHECK:STDOUT: %T.patt.loc22_24.2 => constants.%Eats.facet.fa6 // CHECK:STDOUT: %T.as_type.loc22_43.2 => constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_itself.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_itself.carbon index f677ab3b0c53..91b57ec47300 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_itself.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_facet_value_value_to_itself.carbon @@ -151,9 +151,9 @@ fn F() { // 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] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness) [concrete] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal, @HandleAnimal(%Animal.facet) [concrete] -// CHECK:STDOUT: %FeedAnimal.specific_fn.9d8: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] +// CHECK:STDOUT: %FeedAnimal.specific_fn.5d0: = specific_function %FeedAnimal, @FeedAnimal(%Animal.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -277,9 +277,9 @@ fn F() { // CHECK:STDOUT: %.loc16_17.3: init %Goat = class_init (), %.loc16_17.2 [concrete = constants.%Goat.val] // CHECK:STDOUT: %.loc16_17.4: ref %Goat = temporary %.loc16_17.2, %.loc16_17.3 // CHECK:STDOUT: %.loc16_19.1: ref %Goat = converted %.loc16_17.1, %.loc16_17.4 -// CHECK:STDOUT: %Animal.facet.loc16_26.1: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc16_26.1: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc16_26.1: %Animal.type = converted constants.%Goat, %Animal.facet.loc16_26.1 [concrete = constants.%Animal.facet] -// CHECK:STDOUT: %Animal.facet.loc16_26.2: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet.loc16_26.2: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc16_26.2: %Animal.type = converted constants.%Goat, %Animal.facet.loc16_26.2 [concrete = constants.%Animal.facet] // CHECK:STDOUT: %HandleAnimal.specific_fn: = specific_function %HandleAnimal.ref, @HandleAnimal(constants.%Animal.facet) [concrete = constants.%HandleAnimal.specific_fn] // CHECK:STDOUT: %.loc16_19.2: %Goat = bind_value %.loc16_19.1 @@ -311,7 +311,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type -// CHECK:STDOUT: %FeedAnimal.specific_fn.loc10_37.2 => constants.%FeedAnimal.specific_fn.9d8 +// CHECK:STDOUT: %FeedAnimal.specific_fn.loc10_37.2 => constants.%FeedAnimal.specific_fn.5d0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_interface.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_interface.carbon index 3f29da60a30b..37def6c92d75 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/convert_interface.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/convert_interface.carbon @@ -31,7 +31,7 @@ fn G() { F(Animal); } // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Animal.type, %impl_witness [concrete] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %Animal.type, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -89,7 +89,7 @@ fn G() { F(Animal); } // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value constants.%Animal.type, constants.%impl_witness [concrete = constants.%Eats.facet] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value constants.%Animal.type, (constants.%impl_witness) [concrete = constants.%Eats.facet] // CHECK:STDOUT: %.loc19: %Eats.type = converted %Animal.ref, %Eats.facet [concrete = constants.%Eats.facet] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.ref(%.loc19) // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_class_type_to_generic_facet_value.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_class_type_to_generic_facet_value.carbon index b921c981df68..07a3416bc900 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_class_type_to_generic_facet_value.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_class_type_to_generic_facet_value.carbon @@ -169,7 +169,7 @@ fn G() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.17b: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a56: %F.type.17b = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value %ImplsGeneric, %impl_witness [concrete] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value %ImplsGeneric, (%impl_witness) [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Generic.type.91ccba.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_facet_value_shouldnt_know_concrete_type.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_facet_value_shouldnt_know_concrete_type.carbon index 31ba7a46e642..f81dbe6f94e2 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_facet_value_shouldnt_know_concrete_type.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/fail_convert_facet_value_shouldnt_know_concrete_type.carbon @@ -242,7 +242,7 @@ fn F() { // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, %impl_witness [concrete] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%impl_witness) [concrete] // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.d62: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] // CHECK:STDOUT: %Self.519: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic] @@ -377,7 +377,7 @@ fn F() { // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] // CHECK:STDOUT: %Goat.ref: type = name_ref Goat, file.%Goat.decl [concrete = constants.%Goat] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, constants.%impl_witness [concrete = constants.%Animal.facet] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value constants.%Goat, (constants.%impl_witness) [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc26_13: %Animal.type = converted %Goat.ref, %Animal.facet [concrete = constants.%Animal.facet] // CHECK:STDOUT: %.loc26_22: %Eats.type = converted %.loc26_13, [concrete = ] // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/builtin_conversions/no_prelude/fail_deduction_uses_runtime_type_conversion.carbon b/toolchain/check/testdata/builtin_conversions/no_prelude/fail_deduction_uses_runtime_type_conversion.carbon index d1400faae607..643f40e4651b 100644 --- a/toolchain/check/testdata/builtin_conversions/no_prelude/fail_deduction_uses_runtime_type_conversion.carbon +++ b/toolchain/check/testdata/builtin_conversions/no_prelude/fail_deduction_uses_runtime_type_conversion.carbon @@ -176,7 +176,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.e8b: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.e81: %Convert.type.e8b = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.580 = facet_value %RuntimeConvertFrom, %impl_witness [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.580 = facet_value %RuntimeConvertFrom, (%impl_witness) [concrete] // CHECK:STDOUT: %RuntimeConvertTo.val: %RuntimeConvertTo = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %tuple.elem0: type = tuple_access %T, element0 [symbolic] @@ -193,7 +193,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %from.patt: %RuntimeConvertFrom = symbolic_binding_pattern from, 0 [symbolic] // CHECK:STDOUT: %RuntimeConvertFrom.val: %RuntimeConvertFrom = struct_value () [concrete] // CHECK:STDOUT: %assoc0.43d: %ImplicitAs.assoc_type.837 = assoc_entity element0, imports.%Core.import_ref.207 [symbolic] -// CHECK:STDOUT: %.ff1: type = fn_type_with_self_type %Convert.type.50a, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %.31e: type = fn_type_with_self_type %Convert.type.50a, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %from, %Convert.e81 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -405,7 +405,7 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %from.ref: %RuntimeConvertFrom = name_ref from, %from [symbolic = constants.%from] // CHECK:STDOUT: %holds_to.ref: %HoldsType.066 = name_ref holds_to, %holds_to -// CHECK:STDOUT: %impl.elem0: %.ff1 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Convert.e81] +// CHECK:STDOUT: %impl.elem0: %.31e = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Convert.e81] // CHECK:STDOUT: %bound_method: = bound_method constants.%from, %impl.elem0 [symbolic = constants.%Convert.bound] // CHECK:STDOUT: %.loc30_19.1: ref %RuntimeConvertTo = temporary_storage // CHECK:STDOUT: %Convert.call: init %RuntimeConvertTo = call %bound_method(constants.%from) to %.loc30_19.1 diff --git a/toolchain/check/testdata/builtin_conversions/value_with_type_through_access.carbon b/toolchain/check/testdata/builtin_conversions/value_with_type_through_access.carbon index 120ca7cf0196..4760e007b069 100644 --- a/toolchain/check/testdata/builtin_conversions/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/builtin_conversions/value_with_type_through_access.carbon @@ -661,8 +661,8 @@ fn G() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -729,7 +729,7 @@ fn G() { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // 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: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_48.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_48.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/builtins/bool/eq.carbon b/toolchain/check/testdata/builtins/bool/eq.carbon index 348d33a8797d..a05140c60b74 100644 --- a/toolchain/check/testdata/builtins/bool/eq.carbon +++ b/toolchain/check/testdata/builtins/bool/eq.carbon @@ -291,8 +291,8 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %Eq.type: type = facet_type <@Eq> [concrete] // CHECK:STDOUT: %Equal.type.79c: type = fn_type @Equal.1 [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Core.import_ref.998, imports.%Core.import_ref.fb6) [concrete] -// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value bool, %impl_witness [concrete] -// CHECK:STDOUT: %.006: type = fn_type_with_self_type %Equal.type.79c, %Eq.facet [concrete] +// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value bool, (%impl_witness) [concrete] +// CHECK:STDOUT: %.75b: type = fn_type_with_self_type %Equal.type.79c, %Eq.facet [concrete] // CHECK:STDOUT: %Equal.type.aa3: type = fn_type @Equal.2 [concrete] // CHECK:STDOUT: %Equal.6e2: %Equal.type.aa3 = struct_value () [concrete] // CHECK:STDOUT: %Equal.bound.fe0: = bound_method %true, %Equal.6e2 [concrete] @@ -359,7 +359,7 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %C.ref.loc9: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %true.loc9_10: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %true.loc9_18: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc9: %.006 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] +// CHECK:STDOUT: %impl.elem0.loc9: %.75b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] // CHECK:STDOUT: %bound_method.loc9: = bound_method %true.loc9_10, %impl.elem0.loc9 [concrete = constants.%Equal.bound.fe0] // CHECK:STDOUT: %bool.eq.loc9: init bool = call %bound_method.loc9(%true.loc9_10, %true.loc9_18) [concrete = constants.%true] // CHECK:STDOUT: %.loc9_22.2: bool = value_of_initializer %bool.eq.loc9 [concrete = constants.%true] @@ -376,7 +376,7 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %true.loc10: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %false.loc10: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %impl.elem0.loc10: %.006 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] +// CHECK:STDOUT: %impl.elem0.loc10: %.75b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] // CHECK:STDOUT: %bound_method.loc10: = bound_method %true.loc10, %impl.elem0.loc10 [concrete = constants.%Equal.bound.fe0] // CHECK:STDOUT: %bool.eq.loc10: init bool = call %bound_method.loc10(%true.loc10, %false.loc10) [concrete = constants.%false] // CHECK:STDOUT: %.loc10_23.2: bool = value_of_initializer %bool.eq.loc10 [concrete = constants.%false] @@ -393,7 +393,7 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %C.ref.loc11: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %false.loc11: bool = bool_literal false [concrete = constants.%false] // CHECK:STDOUT: %true.loc11: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc11: %.006 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] +// CHECK:STDOUT: %impl.elem0.loc11: %.75b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] // CHECK:STDOUT: %bound_method.loc11: = bound_method %false.loc11, %impl.elem0.loc11 [concrete = constants.%Equal.bound.d3c] // CHECK:STDOUT: %bool.eq.loc11: init bool = call %bound_method.loc11(%false.loc11, %true.loc11) [concrete = constants.%false] // CHECK:STDOUT: %.loc11_23.2: bool = value_of_initializer %bool.eq.loc11 [concrete = constants.%false] @@ -410,7 +410,7 @@ var d: C(false == false) = True(); // CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %false.loc12_10: bool = bool_literal false [concrete = constants.%false] // CHECK:STDOUT: %false.loc12_19: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %impl.elem0.loc12: %.006 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] +// CHECK:STDOUT: %impl.elem0.loc12: %.75b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.6e2] // CHECK:STDOUT: %bound_method.loc12: = bound_method %false.loc12_10, %impl.elem0.loc12 [concrete = constants.%Equal.bound.d3c] // CHECK:STDOUT: %bool.eq.loc12: init bool = call %bound_method.loc12(%false.loc12_10, %false.loc12_19) [concrete = constants.%true] // CHECK:STDOUT: %.loc12_24.2: bool = value_of_initializer %bool.eq.loc12 [concrete = constants.%true] diff --git a/toolchain/check/testdata/builtins/bool/neq.carbon b/toolchain/check/testdata/builtins/bool/neq.carbon index 2b732c8bef89..cb9fc4a20a6a 100644 --- a/toolchain/check/testdata/builtins/bool/neq.carbon +++ b/toolchain/check/testdata/builtins/bool/neq.carbon @@ -291,8 +291,8 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %Eq.type: type = facet_type <@Eq> [concrete] // CHECK:STDOUT: %NotEqual.type.e6c: type = fn_type @NotEqual.1 [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Core.import_ref.85b, imports.%Core.import_ref.67a) [concrete] -// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value bool, %impl_witness [concrete] -// CHECK:STDOUT: %.8b5: type = fn_type_with_self_type %NotEqual.type.e6c, %Eq.facet [concrete] +// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value bool, (%impl_witness) [concrete] +// CHECK:STDOUT: %.d6e: type = fn_type_with_self_type %NotEqual.type.e6c, %Eq.facet [concrete] // CHECK:STDOUT: %NotEqual.type.c0e: type = fn_type @NotEqual.2 [concrete] // CHECK:STDOUT: %NotEqual.bf4: %NotEqual.type.c0e = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.bound.542: = bound_method %true, %NotEqual.bf4 [concrete] @@ -359,7 +359,7 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %C.ref.loc9: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %true.loc9_10: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %true.loc9_18: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem1.loc9: %.8b5 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] +// CHECK:STDOUT: %impl.elem1.loc9: %.d6e = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] // CHECK:STDOUT: %bound_method.loc9: = bound_method %true.loc9_10, %impl.elem1.loc9 [concrete = constants.%NotEqual.bound.542] // CHECK:STDOUT: %bool.neq.loc9: init bool = call %bound_method.loc9(%true.loc9_10, %true.loc9_18) [concrete = constants.%false] // CHECK:STDOUT: %.loc9_22.2: bool = value_of_initializer %bool.neq.loc9 [concrete = constants.%false] @@ -376,7 +376,7 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %true.loc10: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %false.loc10: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %impl.elem1.loc10: %.8b5 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] +// CHECK:STDOUT: %impl.elem1.loc10: %.d6e = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] // CHECK:STDOUT: %bound_method.loc10: = bound_method %true.loc10, %impl.elem1.loc10 [concrete = constants.%NotEqual.bound.542] // CHECK:STDOUT: %bool.neq.loc10: init bool = call %bound_method.loc10(%true.loc10, %false.loc10) [concrete = constants.%true] // CHECK:STDOUT: %.loc10_23.2: bool = value_of_initializer %bool.neq.loc10 [concrete = constants.%true] @@ -393,7 +393,7 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %C.ref.loc11: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %false.loc11: bool = bool_literal false [concrete = constants.%false] // CHECK:STDOUT: %true.loc11: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem1.loc11: %.8b5 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] +// CHECK:STDOUT: %impl.elem1.loc11: %.d6e = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] // CHECK:STDOUT: %bound_method.loc11: = bound_method %false.loc11, %impl.elem1.loc11 [concrete = constants.%NotEqual.bound.5a9] // CHECK:STDOUT: %bool.neq.loc11: init bool = call %bound_method.loc11(%false.loc11, %true.loc11) [concrete = constants.%true] // CHECK:STDOUT: %.loc11_23.2: bool = value_of_initializer %bool.neq.loc11 [concrete = constants.%true] @@ -410,7 +410,7 @@ var d: C(false != false) = False(); // CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %false.loc12_10: bool = bool_literal false [concrete = constants.%false] // CHECK:STDOUT: %false.loc12_19: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %impl.elem1.loc12: %.8b5 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] +// CHECK:STDOUT: %impl.elem1.loc12: %.d6e = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.bf4] // CHECK:STDOUT: %bound_method.loc12: = bound_method %false.loc12_10, %impl.elem1.loc12 [concrete = constants.%NotEqual.bound.5a9] // CHECK:STDOUT: %bool.neq.loc12: init bool = call %bound_method.loc12(%false.loc12_10, %false.loc12_19) [concrete = constants.%false] // CHECK:STDOUT: %.loc12_24.2: bool = value_of_initializer %bool.neq.loc12 [concrete = constants.%false] diff --git a/toolchain/check/testdata/builtins/float/make_type.carbon b/toolchain/check/testdata/builtins/float/make_type.carbon index 4634d26283fe..0fac87c3ae38 100644 --- a/toolchain/check/testdata/builtins/float/make_type.carbon +++ b/toolchain/check/testdata/builtins/float/make_type.carbon @@ -100,8 +100,8 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%Core.import_ref.a86), @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, %impl_witness.b97 [concrete] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%impl_witness.b97) [concrete] +// CHECK:STDOUT: %.b14: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_64.fab, %Convert.16d [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_64.fab, %Convert.specific_fn [concrete] @@ -138,7 +138,7 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: %.loc6_16.1: type = splice_block %.loc6_16.3 [concrete = f64] { // CHECK:STDOUT: %Float.ref: %Float.type = name_ref Float, imports.%Main.Float [concrete = constants.%Float] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete = constants.%int_64.fab] -// CHECK:STDOUT: %impl.elem0: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc6_14.1: = bound_method %int_64, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_14.2: = bound_method %int_64, %specific_fn [concrete = constants.%bound_method] @@ -198,8 +198,8 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%Core.import_ref.a86), @impl.c81(%int_32.be0) [concrete] // CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.c81(%int_32.be0) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, %impl_witness.b97 [concrete] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%impl_witness.b97) [concrete] +// CHECK:STDOUT: %.b14: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.cce: = bound_method %int_32.be0, %Convert.16d [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.2(%int_32.be0) [concrete] // CHECK:STDOUT: %bound_method.480: = bound_method %int_32.be0, %Convert.specific_fn [concrete] @@ -238,7 +238,7 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: %.loc10_28.1: type = splice_block %.loc10_28.3 [concrete = ] { // CHECK:STDOUT: %Float.ref.loc10: %Float.type = name_ref Float, imports.%Main.Float [concrete = constants.%Float] // CHECK:STDOUT: %int_32.loc10: Core.IntLiteral = int_value 32 [concrete = constants.%int_32.be0] -// CHECK:STDOUT: %impl.elem0: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc10_26.1: = bound_method %int_32.loc10, %impl.elem0 [concrete = constants.%Convert.bound.cce] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32.be0) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_26.2: = bound_method %int_32.loc10, %specific_fn [concrete = constants.%bound_method.480] @@ -281,7 +281,7 @@ var dyn: Float(dyn_size); // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete = constants.%int_64.fab] -// CHECK:STDOUT: %impl.elem0: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc12_1.1: = bound_method %int_64, %impl.elem0 [concrete = constants.%Convert.bound.575] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32.be0) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_1.2: = bound_method %int_64, %specific_fn [concrete = constants.%bound_method.767] diff --git a/toolchain/check/testdata/builtins/print/char.carbon b/toolchain/check/testdata/builtins/print/char.carbon index 0f9a5df364d1..f27df92b550a 100644 --- a/toolchain/check/testdata/builtins/print/char.carbon +++ b/toolchain/check/testdata/builtins/print/char.carbon @@ -32,8 +32,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -91,7 +91,7 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %PrintChar.ref.loc16: %PrintChar.type.c95 = name_ref PrintChar, file.%PrintChar.decl [concrete = constants.%PrintChar.843] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_13.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_13.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method.9a1] @@ -102,7 +102,7 @@ fn Main() { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %PrintChar.ref.loc17: %PrintChar.type.089 = name_ref PrintChar, imports.%Core.PrintChar [concrete = constants.%PrintChar.d75] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc17: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_18.1: = bound_method %int_2, %impl.elem0.loc17 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_18.2: = bound_method %int_2, %specific_fn.loc17 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/builtins/print/int.carbon b/toolchain/check/testdata/builtins/print/int.carbon index b9de361a4d63..5a5891154c16 100644 --- a/toolchain/check/testdata/builtins/print/int.carbon +++ b/toolchain/check/testdata/builtins/print/int.carbon @@ -34,8 +34,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -87,7 +87,7 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Print.ref.loc16: %Print.type.980 = name_ref Print, file.%Print.decl [concrete = constants.%Print.b7c] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_9.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_9.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method.9a1] @@ -98,7 +98,7 @@ fn Main() { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Print.ref.loc18: %Print.type.6ed = name_ref Print, imports.%Core.Print [concrete = constants.%Print.723] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc18: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_14.1: = bound_method %int_2, %impl.elem0.loc18 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_14.2: = bound_method %int_2, %specific_fn.loc18 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/choice/basic.carbon b/toolchain/check/testdata/choice/basic.carbon index 88a7a425c29e..3e649dd6cf47 100644 --- a/toolchain/check/testdata/choice/basic.carbon +++ b/toolchain/check/testdata/choice/basic.carbon @@ -168,8 +168,8 @@ fn G() { // CHECK:STDOUT: %impl_witness.f5e: = impl_witness (imports.%Core.import_ref.c3d), @impl.86e(%int_2.ecc) [concrete] // CHECK:STDOUT: %Convert.type.70b: type = fn_type @Convert.2, @impl.86e(%int_2.ecc) [concrete] // CHECK:STDOUT: %Convert.474: %Convert.type.70b = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.54b = facet_value Core.IntLiteral, %impl_witness.f5e [concrete] -// CHECK:STDOUT: %.89d: type = fn_type_with_self_type %Convert.type.f0e, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.54b = facet_value Core.IntLiteral, (%impl_witness.f5e) [concrete] +// CHECK:STDOUT: %.a2e: type = fn_type_with_self_type %Convert.type.f0e, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.5bb: = bound_method %int_0.5c6, %Convert.474 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.474, @Convert.2(%int_2.ecc) [concrete] // CHECK:STDOUT: %bound_method.d36: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -218,7 +218,7 @@ fn G() { // CHECK:STDOUT: %u2: type = class_type @UInt, @UInt(constants.%int_2.ecc) [concrete = constants.%u2] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.discriminant [concrete = constants.%complete_type.de2] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc4: %.89d = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] +// CHECK:STDOUT: %impl.elem0.loc4: %.a2e = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc4_7.1: = bound_method %int_0, %impl.elem0.loc4 [concrete = constants.%Convert.bound.5bb] // CHECK:STDOUT: %specific_fn.loc4: = specific_function %impl.elem0.loc4, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_7.2: = bound_method %int_0, %specific_fn.loc4 [concrete = constants.%bound_method.d36] @@ -235,7 +235,7 @@ fn G() { // CHECK:STDOUT: %.loc4_7.10: %Ordering = bind_value %.loc4_7.9 // CHECK:STDOUT: %Less: %Ordering = bind_name Less, %.loc4_7.10 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc5: %.89d = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] +// CHECK:STDOUT: %impl.elem0.loc5: %.a2e = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc5_13.1: = bound_method %int_1, %impl.elem0.loc5 [concrete = constants.%Convert.bound.0dd] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_13.2: = bound_method %int_1, %specific_fn.loc5 [concrete = constants.%bound_method.6bf] @@ -252,7 +252,7 @@ fn G() { // CHECK:STDOUT: %.loc5_13.10: %Ordering = bind_value %.loc5_13.9 // CHECK:STDOUT: %Equivalent: %Ordering = bind_name Equivalent, %.loc5_13.10 // CHECK:STDOUT: %int_2.loc6: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc6: %.89d = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] +// CHECK:STDOUT: %impl.elem0.loc6: %.a2e = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %int_2.loc6, %impl.elem0.loc6 [concrete = constants.%Convert.bound.122] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %int_2.loc6, %specific_fn.loc6 [concrete = constants.%bound_method.f7d] @@ -269,7 +269,7 @@ fn G() { // CHECK:STDOUT: %.loc6_10.10: %Ordering = bind_value %.loc6_10.9 // CHECK:STDOUT: %Greater: %Ordering = bind_name Greater, %.loc6_10.10 // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc8: %.89d = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] +// CHECK:STDOUT: %impl.elem0.loc8: %.a2e = impl_witness_access constants.%impl_witness.f5e, element0 [concrete = constants.%Convert.474] // CHECK:STDOUT: %bound_method.loc8_1.1: = bound_method %int_3, %impl.elem0.loc8 [concrete = constants.%Convert.bound.a5c] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Convert.2(constants.%int_2.ecc) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_1.2: = bound_method %int_3, %specific_fn.loc8 [concrete = constants.%bound_method.c7e] diff --git a/toolchain/check/testdata/choice/fail_todo_params.carbon b/toolchain/check/testdata/choice/fail_todo_params.carbon index 998c16c47394..1ba74dd07528 100644 --- a/toolchain/check/testdata/choice/fail_todo_params.carbon +++ b/toolchain/check/testdata/choice/fail_todo_params.carbon @@ -61,8 +61,8 @@ choice C { // CHECK:STDOUT: %impl_witness.514: = impl_witness (imports.%Core.import_ref.c3d), @impl.86e(%int_1.5b8) [concrete] // CHECK:STDOUT: %Convert.type.f9b: type = fn_type @Convert.2, @impl.86e(%int_1.5b8) [concrete] // CHECK:STDOUT: %Convert.84e: %Convert.type.f9b = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.766 = facet_value Core.IntLiteral, %impl_witness.514 [concrete] -// CHECK:STDOUT: %.996: type = fn_type_with_self_type %Convert.type.5a2, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.766 = facet_value Core.IntLiteral, (%impl_witness.514) [concrete] +// CHECK:STDOUT: %.df4: type = fn_type_with_self_type %Convert.type.5a2, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.db0: = bound_method %int_0.5c6, %Convert.84e [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.84e, @Convert.2(%int_1.5b8) [concrete] // CHECK:STDOUT: %bound_method.06f: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -110,7 +110,7 @@ choice C { // CHECK:STDOUT: %u1: type = class_type @UInt, @UInt(constants.%int_1.5b8) [concrete = constants.%u1] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.discriminant [concrete = constants.%complete_type.df6] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc4: %.996 = impl_witness_access constants.%impl_witness.514, element0 [concrete = constants.%Convert.84e] +// CHECK:STDOUT: %impl.elem0.loc4: %.df4 = impl_witness_access constants.%impl_witness.514, element0 [concrete = constants.%Convert.84e] // CHECK:STDOUT: %bound_method.loc4_7.1: = bound_method %int_0, %impl.elem0.loc4 [concrete = constants.%Convert.bound.db0] // CHECK:STDOUT: %specific_fn.loc4: = specific_function %impl.elem0.loc4, @Convert.2(constants.%int_1.5b8) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_7.2: = bound_method %int_0, %specific_fn.loc4 [concrete = constants.%bound_method.06f] @@ -127,7 +127,7 @@ choice C { // CHECK:STDOUT: %.loc4_7.10: %C = bind_value %.loc4_7.9 // CHECK:STDOUT: %Alt1: %C = bind_name Alt1, %.loc4_7.10 // CHECK:STDOUT: %int_1.loc10: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc10: %.996 = impl_witness_access constants.%impl_witness.514, element0 [concrete = constants.%Convert.84e] +// CHECK:STDOUT: %impl.elem0.loc10: %.df4 = impl_witness_access constants.%impl_witness.514, element0 [concrete = constants.%Convert.84e] // CHECK:STDOUT: %bound_method.loc10_7.1: = bound_method %int_1.loc10, %impl.elem0.loc10 [concrete = constants.%Convert.bound.1f9] // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Convert.2(constants.%int_1.5b8) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_7.2: = bound_method %int_1.loc10, %specific_fn.loc10 [concrete = constants.%bound_method.734] diff --git a/toolchain/check/testdata/class/access_modifers.carbon b/toolchain/check/testdata/class/access_modifers.carbon index b6688aeeed23..9ed88c4f9fc2 100644 --- a/toolchain/check/testdata/class/access_modifers.carbon +++ b/toolchain/check/testdata/class/access_modifers.carbon @@ -159,8 +159,8 @@ class A { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.a25: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -215,7 +215,7 @@ class A { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_45.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_45.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.a25] @@ -254,7 +254,7 @@ class A { // CHECK:STDOUT: fn @SomeInternalFunction() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_13.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_13.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] @@ -268,7 +268,7 @@ class A { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %.loc13_24.1: %struct_type.radius.f47 = struct_literal (%int_5) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_24.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_24.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method.a25] @@ -396,8 +396,8 @@ class A { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -488,7 +488,7 @@ class A { // CHECK:STDOUT: fn @SomeInternalFunction() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_13.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_13.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -520,8 +520,8 @@ class A { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -566,7 +566,7 @@ class A { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_16.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_16.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] @@ -601,8 +601,8 @@ class A { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -656,7 +656,7 @@ class A { // CHECK:STDOUT: %int_32.loc5: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc5: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc5: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc5: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_26.1: = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_26.2: = bound_method %int_5.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] @@ -672,7 +672,7 @@ class A { // CHECK:STDOUT: %int_32.loc6: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc6: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_24.1: = bound_method %int_5.loc6, %impl.elem0.loc6 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_24.2: = bound_method %int_5.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/adapter/init_adapt.carbon b/toolchain/check/testdata/class/adapter/init_adapt.carbon index b805e6aed217..8b26ab2f8280 100644 --- a/toolchain/check/testdata/class/adapter/init_adapt.carbon +++ b/toolchain/check/testdata/class/adapter/init_adapt.carbon @@ -110,8 +110,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -155,7 +155,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc13: type = name_ref C, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_27.1: = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc13_27.1: = specific_function %impl.elem0.loc13_27.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_27.2: = bound_method @__global_init.%int_1, %specific_fn.loc13_27.1 [concrete = constants.%bound_method.9a1] @@ -164,7 +164,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %.loc13_27.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_27.3: ref %i32 = class_element_access %.loc13_27.2, element0 // CHECK:STDOUT: %.loc13_27.4: init %i32 = initialize_from %.loc13_27.1 to %.loc13_27.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_27.3: = bound_method @__global_init.%int_2, %impl.elem0.loc13_27.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc13_27.2: = specific_function %impl.elem0.loc13_27.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_27.4: = bound_method @__global_init.%int_2, %specific_fn.loc13_27.2 [concrete = constants.%bound_method.b92] @@ -301,8 +301,8 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -346,7 +346,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %a.patt: %C = binding_pattern a // CHECK:STDOUT: } // CHECK:STDOUT: %C.ref.loc13: type = name_ref C, %C.decl [concrete = constants.%C] -// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_27.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_27.1: = bound_method @__global_init.%int_1, %impl.elem0.loc13_27.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc13_27.1: = specific_function %impl.elem0.loc13_27.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_27.2: = bound_method @__global_init.%int_1, %specific_fn.loc13_27.1 [concrete = constants.%bound_method.9a1] @@ -355,7 +355,7 @@ var e: C = MakeAdaptC(); // CHECK:STDOUT: %.loc13_27.2: ref %C = temporary_storage // CHECK:STDOUT: %.loc13_27.3: ref %i32 = class_element_access %.loc13_27.2, element0 // CHECK:STDOUT: %.loc13_27.4: init %i32 = initialize_from %.loc13_27.1 to %.loc13_27.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_27.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_27.3: = bound_method @__global_init.%int_2, %impl.elem0.loc13_27.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc13_27.2: = specific_function %impl.elem0.loc13_27.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_27.4: = bound_method @__global_init.%int_2, %specific_fn.loc13_27.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/class/base.carbon b/toolchain/check/testdata/class/base.carbon index 727821565d7b..820d794e9d56 100644 --- a/toolchain/check/testdata/class/base.carbon +++ b/toolchain/check/testdata/class/base.carbon @@ -70,8 +70,8 @@ class Derived { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.1da: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] @@ -174,7 +174,7 @@ class Derived { // CHECK:STDOUT: %.loc14_26.1: %struct_type.b.a15 = struct_literal (%int_4) // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] // CHECK:STDOUT: %.loc14_35.1: %struct_type.base.d.a20 = struct_literal (%.loc14_26.1, %int_7) -// CHECK:STDOUT: %impl.elem0.loc14_26: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_26: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_26.1: = bound_method %int_4, %impl.elem0.loc14_26 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc14_26: = specific_function %impl.elem0.loc14_26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_26.2: = bound_method %int_4, %specific_fn.loc14_26 [concrete = constants.%bound_method.1da] @@ -185,7 +185,7 @@ class Derived { // CHECK:STDOUT: %.loc14_26.4: init %i32 = initialize_from %.loc14_26.2 to %.loc14_26.3 [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc14_26.5: init %Base = class_init (%.loc14_26.4), %.loc14_35.2 [concrete = constants.%Base.val] // CHECK:STDOUT: %.loc14_35.3: init %Base = converted %.loc14_26.1, %.loc14_26.5 [concrete = constants.%Base.val] -// CHECK:STDOUT: %impl.elem0.loc14_35: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_35: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_35.1: = bound_method %int_7, %impl.elem0.loc14_35 [concrete = constants.%Convert.bound.208] // CHECK:STDOUT: %specific_fn.loc14_35: = specific_function %impl.elem0.loc14_35, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_35.2: = bound_method %int_7, %specific_fn.loc14_35 [concrete = constants.%bound_method.3bd] diff --git a/toolchain/check/testdata/class/base_method.carbon b/toolchain/check/testdata/class/base_method.carbon index a59e22e024a2..423b69376750 100644 --- a/toolchain/check/testdata/class/base_method.carbon +++ b/toolchain/check/testdata/class/base_method.carbon @@ -45,8 +45,8 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -152,7 +152,7 @@ fn Call(p: Derived*) { // CHECK:STDOUT: %a.ref: %Base.elem = name_ref a, @Base.%.loc12_8 [concrete = @Base.%.loc12_8] // CHECK:STDOUT: %.loc18_10: ref %i32 = class_element_access %.loc18_4, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/basic.carbon b/toolchain/check/testdata/class/basic.carbon index 48ccc6b516eb..005c1ff6910f 100644 --- a/toolchain/check/testdata/class/basic.carbon +++ b/toolchain/check/testdata/class/basic.carbon @@ -47,8 +47,8 @@ fn Run() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] @@ -169,7 +169,7 @@ fn Run() -> i32 { // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] // CHECK:STDOUT: %F.ref: %F.type = name_ref F, @Class.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_18.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_18.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/derived_to_base.carbon b/toolchain/check/testdata/class/derived_to_base.carbon index 823079ccee5d..2e0139b16fca 100644 --- a/toolchain/check/testdata/class/derived_to_base.carbon +++ b/toolchain/check/testdata/class/derived_to_base.carbon @@ -83,8 +83,8 @@ fn ConvertInit() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -326,7 +326,7 @@ fn ConvertInit() { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc38_57.1: %struct_type.base.c.136 = struct_literal (%.loc38_48.1, %int_3) // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %impl.elem0.loc38_39: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc38_39: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc38_39.1: = bound_method %int_1, %impl.elem0.loc38_39 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc38_39: = specific_function %impl.elem0.loc38_39, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc38_39.2: = bound_method %int_1, %specific_fn.loc38_39 [concrete = constants.%bound_method.9a1] @@ -339,7 +339,7 @@ fn ConvertInit() { // CHECK:STDOUT: %.loc38_39.4: init %i32 = initialize_from %.loc38_39.2 to %.loc38_39.3 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc38_39.5: init %A = class_init (%.loc38_39.4), %.loc38_48.2 [concrete = constants.%A.val] // CHECK:STDOUT: %.loc38_48.3: init %A = converted %.loc38_39.1, %.loc38_39.5 [concrete = constants.%A.val] -// CHECK:STDOUT: %impl.elem0.loc38_48: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc38_48: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc38_48.1: = bound_method %int_2, %impl.elem0.loc38_48 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc38_48: = specific_function %impl.elem0.loc38_48, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc38_48.2: = bound_method %int_2, %specific_fn.loc38_48 [concrete = constants.%bound_method.b92] @@ -349,7 +349,7 @@ fn ConvertInit() { // CHECK:STDOUT: %.loc38_48.6: init %i32 = initialize_from %.loc38_48.4 to %.loc38_48.5 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc38_48.7: init %B = class_init (%.loc38_48.3, %.loc38_48.6), %.loc38_57.3 [concrete = constants.%B.val] // CHECK:STDOUT: %.loc38_57.4: init %B = converted %.loc38_48.1, %.loc38_48.7 [concrete = constants.%B.val] -// CHECK:STDOUT: %impl.elem0.loc38_57: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc38_57: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc38_57.1: = bound_method %int_3, %impl.elem0.loc38_57 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc38_57: = specific_function %impl.elem0.loc38_57, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc38_57.2: = bound_method %int_3, %specific_fn.loc38_57 [concrete = constants.%bound_method.047] diff --git a/toolchain/check/testdata/class/fail_field_modifiers.carbon b/toolchain/check/testdata/class/fail_field_modifiers.carbon index c5b6b57449ff..bdf71f626cf6 100644 --- a/toolchain/check/testdata/class/fail_field_modifiers.carbon +++ b/toolchain/check/testdata/class/fail_field_modifiers.carbon @@ -48,8 +48,8 @@ class Class { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -99,7 +99,7 @@ class Class { // CHECK:STDOUT: %int_32.loc29: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc29: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc29: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc29: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc29_24.1: = bound_method %int_0, %impl.elem0.loc29 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc29_24.2: = bound_method %int_0, %specific_fn.loc29 [concrete = constants.%bound_method.b6e] @@ -115,7 +115,7 @@ class Class { // CHECK:STDOUT: %int_32.loc35: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc35: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc35: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc35: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc35_22.1: = bound_method %int_1, %impl.elem0.loc35 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc35: = specific_function %impl.elem0.loc35, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc35_22.2: = bound_method %int_1, %specific_fn.loc35 [concrete = constants.%bound_method.9a1] diff --git a/toolchain/check/testdata/class/fail_init.carbon b/toolchain/check/testdata/class/fail_init.carbon index 7b89ed3a3a4d..a94b05e1f2aa 100644 --- a/toolchain/check/testdata/class/fail_init.carbon +++ b/toolchain/check/testdata/class/fail_init.carbon @@ -51,8 +51,8 @@ fn F() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -113,7 +113,7 @@ fn F() { // CHECK:STDOUT: %int_2.loc26: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %.loc26_18.1: %struct_type.a.c = struct_literal (%int_1.loc26, %int_2.loc26) // CHECK:STDOUT: %Class.ref.loc26: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_18.1: = bound_method %int_1.loc26, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_18.2: = bound_method %int_1.loc26, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/fail_init_as_inplace.carbon b/toolchain/check/testdata/class/fail_init_as_inplace.carbon index 85561d9c7e2e..3fc2edabb2ff 100644 --- a/toolchain/check/testdata/class/fail_init_as_inplace.carbon +++ b/toolchain/check/testdata/class/fail_init_as_inplace.carbon @@ -50,8 +50,8 @@ fn F() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -127,7 +127,7 @@ fn F() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc26_33.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %Class.ref.loc26_38: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %impl.elem0.loc26_33.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc26_33.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_33.1: = bound_method %int_1, %impl.elem0.loc26_33.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc26_33.1: = specific_function %impl.elem0.loc26_33.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_33.2: = bound_method %int_1, %specific_fn.loc26_33.1 [concrete = constants.%bound_method.9a1] @@ -136,7 +136,7 @@ fn F() { // CHECK:STDOUT: %.loc26_33.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc26_33.4: ref %i32 = class_element_access %.loc26_33.3, element0 // CHECK:STDOUT: %.loc26_33.5: init %i32 = initialize_from %.loc26_33.2 to %.loc26_33.4 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc26_33.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc26_33.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_33.3: = bound_method %int_2, %impl.elem0.loc26_33.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc26_33.2: = specific_function %impl.elem0.loc26_33.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_33.4: = bound_method %int_2, %specific_fn.loc26_33.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/class/fail_scope.carbon b/toolchain/check/testdata/class/fail_scope.carbon index b4e51b84318b..105b4e63decc 100644 --- a/toolchain/check/testdata/class/fail_scope.carbon +++ b/toolchain/check/testdata/class/fail_scope.carbon @@ -38,8 +38,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -98,7 +98,7 @@ fn G() -> i32 { // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/field_access.carbon b/toolchain/check/testdata/class/field_access.carbon index 74b1fa7bff33..d6a92413cf62 100644 --- a/toolchain/check/testdata/class/field_access.carbon +++ b/toolchain/check/testdata/class/field_access.carbon @@ -38,8 +38,8 @@ fn Run() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -103,7 +103,7 @@ fn Run() { // CHECK:STDOUT: %j.ref.loc18: %Class.elem = name_ref j, @Class.%.loc12_8 [concrete = @Class.%.loc12_8] // CHECK:STDOUT: %.loc18_4: ref %i32 = class_element_access %c.ref.loc18, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc18: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_7.1: = bound_method %int_1, %impl.elem0.loc18 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_7.2: = bound_method %int_1, %specific_fn.loc18 [concrete = constants.%bound_method.9a1] @@ -114,7 +114,7 @@ fn Run() { // CHECK:STDOUT: %k.ref.loc19: %Class.elem = name_ref k, @Class.%.loc13_8 [concrete = @Class.%.loc13_8] // CHECK:STDOUT: %.loc19_4: ref %i32 = class_element_access %c.ref.loc19, element1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc19: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc19: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_7.1: = bound_method %int_2, %impl.elem0.loc19 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_7.2: = bound_method %int_2, %specific_fn.loc19 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/class/field_access_in_value.carbon b/toolchain/check/testdata/class/field_access_in_value.carbon index 11de7552006b..f843320f5f93 100644 --- a/toolchain/check/testdata/class/field_access_in_value.carbon +++ b/toolchain/check/testdata/class/field_access_in_value.carbon @@ -39,8 +39,8 @@ fn Test() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -104,7 +104,7 @@ fn Test() { // CHECK:STDOUT: %j.ref.loc18: %Class.elem = name_ref j, @Class.%.loc12_8 [concrete = @Class.%.loc12_8] // CHECK:STDOUT: %.loc18_5: ref %i32 = class_element_access %cv.ref.loc18, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc18: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_8.1: = bound_method %int_1, %impl.elem0.loc18 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_8.2: = bound_method %int_1, %specific_fn.loc18 [concrete = constants.%bound_method.9a1] @@ -115,7 +115,7 @@ fn Test() { // CHECK:STDOUT: %k.ref.loc19: %Class.elem = name_ref k, @Class.%.loc13_8 [concrete = @Class.%.loc13_8] // CHECK:STDOUT: %.loc19_5: ref %i32 = class_element_access %cv.ref.loc19, element1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc19: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc19: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_8.1: = bound_method %int_2, %impl.elem0.loc19 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_8.2: = bound_method %int_2, %specific_fn.loc19 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/class/generic/call.carbon b/toolchain/check/testdata/class/generic/call.carbon index 751ac0ba1686..570977849bb5 100644 --- a/toolchain/check/testdata/class/generic/call.carbon +++ b/toolchain/check/testdata/class/generic/call.carbon @@ -108,8 +108,8 @@ class Outer(T:! type) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.a25: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -161,7 +161,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.235] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc6: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_21.1: = bound_method %int_5, %impl.elem0.loc6 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_21.2: = bound_method %int_5, %specific_fn.loc6 [concrete = constants.%bound_method.a25] @@ -181,7 +181,7 @@ class Outer(T:! type) { // CHECK:STDOUT: %.loc9_15: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc9_19.2: type = converted %.loc9_15, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %impl.elem0.loc9: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_19.1: = bound_method %int_0, %impl.elem0.loc9 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_19.2: = bound_method %int_0, %specific_fn.loc9 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon index 14b84a96c768..64927d1e691e 100644 --- a/toolchain/check/testdata/class/generic/complete_in_conversion.carbon +++ b/toolchain/check/testdata/class/generic/complete_in_conversion.carbon @@ -66,8 +66,8 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f7f: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.f7f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2b8: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.2b8 [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn.b6f [concrete] @@ -138,7 +138,7 @@ fn F(a: A(0)*) { // CHECK:STDOUT: %.loc15_13: type = splice_block %ptr.loc15 [concrete = constants.%ptr.b65] { // CHECK:STDOUT: %A.ref: %A.type = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc15_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 859dcd3a8de7..107e371dcd8e 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -108,8 +108,8 @@ class Class(U:! type) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -207,7 +207,7 @@ class Class(U:! type) { // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_27.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_27.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -280,8 +280,8 @@ class Class(U:! type) { // CHECK:STDOUT: %impl_witness.847: = impl_witness (imports.%Main.import_ref.773), @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.e14: type = fn_type @Convert.2, @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.4cb: %Convert.type.e14 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, %impl_witness.847 [concrete] -// CHECK:STDOUT: %.088: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, (%impl_witness.847) [concrete] +// CHECK:STDOUT: %.419: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.4cb [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.4cb, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -391,7 +391,7 @@ class Class(U:! type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_17.1: %struct_type.n.44a = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc9_17.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_17.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/generic/stringify.carbon b/toolchain/check/testdata/class/generic/stringify.carbon index 793b4c4e8667..1a9411fb8118 100644 --- a/toolchain/check/testdata/class/generic/stringify.carbon +++ b/toolchain/check/testdata/class/generic/stringify.carbon @@ -337,8 +337,8 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_123.fff, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_123.fff, %Convert.specific_fn [concrete] @@ -379,7 +379,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %.loc13_13.1: type = splice_block %C [concrete = constants.%C.4c3] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, %C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_123: Core.IntLiteral = int_value 123 [concrete = constants.%int_123.fff] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_13.1: = bound_method %int_123, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_13.2: = bound_method %int_123, %specific_fn [concrete = constants.%bound_method] @@ -450,8 +450,8 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -505,7 +505,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc25_25.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc25_25.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc25_25.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_25.1: = bound_method %int_1, %impl.elem0.loc25_25.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc25_25.1: = specific_function %impl.elem0.loc25_25.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_25.2: = bound_method %int_1, %specific_fn.loc25_25.1 [concrete = constants.%bound_method.9a1] @@ -514,7 +514,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %.loc25_25.3: ref %D = temporary_storage // CHECK:STDOUT: %.loc25_25.4: ref %i32 = class_element_access %.loc25_25.3, element0 // CHECK:STDOUT: %.loc25_25.5: init %i32 = initialize_from %.loc25_25.2 to %.loc25_25.4 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc25_25.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc25_25.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_25.3: = bound_method %int_2, %impl.elem0.loc25_25.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc25_25.2: = specific_function %impl.elem0.loc25_25.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_25.4: = bound_method %int_2, %specific_fn.loc25_25.2 [concrete = constants.%bound_method.b92] @@ -573,7 +573,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc25_53.1: %struct_type.a.b.cfd = struct_literal (%int_3, %int_4) // CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D] -// CHECK:STDOUT: %impl.elem0.loc25_53.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc25_53.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_53.1: = bound_method %int_3, %impl.elem0.loc25_53.1 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc25_53.1: = specific_function %impl.elem0.loc25_53.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_53.2: = bound_method %int_3, %specific_fn.loc25_53.1 [concrete = constants.%bound_method.047] @@ -582,7 +582,7 @@ var g: E({.a = 1, .b = 2}) = {} as E({.a = 3, .b = 4} as D); // CHECK:STDOUT: %.loc25_53.3: ref %D = temporary_storage // CHECK:STDOUT: %.loc25_53.4: ref %i32 = class_element_access %.loc25_53.3, element0 // CHECK:STDOUT: %.loc25_53.5: init %i32 = initialize_from %.loc25_53.2 to %.loc25_53.4 [concrete = constants.%int_3.822] -// CHECK:STDOUT: %impl.elem0.loc25_53.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc25_53.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_53.3: = bound_method %int_4, %impl.elem0.loc25_53.2 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc25_53.2: = specific_function %impl.elem0.loc25_53.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_53.4: = bound_method %int_4, %specific_fn.loc25_53.2 [concrete = constants.%bound_method.1da] diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index 8f4262d29eb1..f2fb13bb9ce1 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -174,8 +174,8 @@ fn Run() { // CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%Core.import_ref.a86), @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, %impl_witness.b97 [concrete] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%impl_witness.b97) [concrete] +// CHECK:STDOUT: %.b14: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.43e: = bound_method %int_1.5b8, %Convert.16d [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.947: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -291,7 +291,7 @@ fn Run() { // CHECK:STDOUT: %b.var: ref %Field = var b // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc9_25.1: %struct_type.x.c96 = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0.loc9: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0.loc9: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc9_25.1: = bound_method %int_1, %impl.elem0.loc9 [concrete = constants.%Convert.bound.43e] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_25.2: = bound_method %int_1, %specific_fn.loc9 [concrete = constants.%bound_method.947] @@ -308,7 +308,7 @@ fn Run() { // CHECK:STDOUT: %x.ref: %Field.elem = name_ref x, imports.%Main.import_ref.4d2 [concrete = imports.%.d33] // CHECK:STDOUT: %.loc10_4: ref %i32 = class_element_access %b.ref, element0 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc10: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0.loc10: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc10_7.1: = bound_method %int_2, %impl.elem0.loc10 [concrete = constants.%Convert.bound.918] // CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_7.2: = bound_method %int_2, %specific_fn.loc10 [concrete = constants.%bound_method.c74] diff --git a/toolchain/check/testdata/class/import_base.carbon b/toolchain/check/testdata/class/import_base.carbon index 378c63313659..8f8e99aaebf1 100644 --- a/toolchain/check/testdata/class/import_base.carbon +++ b/toolchain/check/testdata/class/import_base.carbon @@ -152,8 +152,8 @@ fn Run() { // CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%Core.import_ref.a86), @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, %impl_witness.b97 [concrete] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%impl_witness.b97) [concrete] +// CHECK:STDOUT: %.b14: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.9aa: = bound_method %int_0.5c6, %Convert.16d [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8aa: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -237,7 +237,7 @@ fn Run() { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc7_47.1: %struct_type.x.unused.c45 = struct_literal (%int_0, %int_1) // CHECK:STDOUT: %.loc7_48.1: %struct_type.base.6c7 = struct_literal (%.loc7_47.1) -// CHECK:STDOUT: %impl.elem0.loc7_47.1: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0.loc7_47.1: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc7_47.1: = bound_method %int_0, %impl.elem0.loc7_47.1 [concrete = constants.%Convert.bound.9aa] // CHECK:STDOUT: %specific_fn.loc7_47.1: = specific_function %impl.elem0.loc7_47.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_47.2: = bound_method %int_0, %specific_fn.loc7_47.1 [concrete = constants.%bound_method.8aa] @@ -246,7 +246,7 @@ fn Run() { // CHECK:STDOUT: %.loc7_48.2: ref %Base = class_element_access %a.var, element0 // CHECK:STDOUT: %.loc7_47.3: ref %i32 = class_element_access %.loc7_48.2, element0 // CHECK:STDOUT: %.loc7_47.4: init %i32 = initialize_from %.loc7_47.2 to %.loc7_47.3 [concrete = constants.%int_0.263] -// CHECK:STDOUT: %impl.elem0.loc7_47.2: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0.loc7_47.2: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc7_47.3: = bound_method %int_1, %impl.elem0.loc7_47.2 [concrete = constants.%Convert.bound.43e] // CHECK:STDOUT: %specific_fn.loc7_47.2: = specific_function %impl.elem0.loc7_47.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_47.4: = bound_method %int_1, %specific_fn.loc7_47.2 [concrete = constants.%bound_method.947] @@ -267,7 +267,7 @@ fn Run() { // CHECK:STDOUT: %.loc8_4.2: ref %Base = converted %a.ref.loc8, %.loc8_4.1 // CHECK:STDOUT: %.loc8_4.3: ref %i32 = class_element_access %.loc8_4.2, element0 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc8: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0.loc8: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc8_7.1: = bound_method %int_2, %impl.elem0.loc8 [concrete = constants.%Convert.bound.918] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_7.2: = bound_method %int_2, %specific_fn.loc8 [concrete = constants.%bound_method.c74] diff --git a/toolchain/check/testdata/class/inheritance_access.carbon b/toolchain/check/testdata/class/inheritance_access.carbon index b4eef7cad818..69fc0efc71cb 100644 --- a/toolchain/check/testdata/class/inheritance_access.carbon +++ b/toolchain/check/testdata/class/inheritance_access.carbon @@ -480,8 +480,8 @@ class B { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -529,7 +529,7 @@ class B { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_38.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_38.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] @@ -592,7 +592,7 @@ class B { // CHECK:STDOUT: fn @SomeProtectedFunction() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_13.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_13.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] @@ -971,8 +971,8 @@ class B { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -1021,7 +1021,7 @@ class B { // CHECK:STDOUT: %int_32.loc5: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc5: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc5: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc5: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_48.1: = bound_method %int_5.loc5, %impl.elem0.loc5 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_48.2: = bound_method %int_5.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] @@ -1037,7 +1037,7 @@ class B { // CHECK:STDOUT: %int_32.loc6: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc6: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_44.1: = bound_method %int_5.loc6, %impl.elem0.loc6 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_44.2: = bound_method %int_5.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] @@ -1063,7 +1063,7 @@ class B { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_42.1: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_42.2: = bound_method %int_5, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/init_as.carbon b/toolchain/check/testdata/class/init_as.carbon index f6f15d213e96..1eb886d675ed 100644 --- a/toolchain/check/testdata/class/init_as.carbon +++ b/toolchain/check/testdata/class/init_as.carbon @@ -36,8 +36,8 @@ fn F() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -102,7 +102,7 @@ fn F() -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc17_26.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %impl.elem0.loc17_26.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_26.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_26.1: = bound_method %int_1, %impl.elem0.loc17_26.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc17_26.1: = specific_function %impl.elem0.loc17_26.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_26.2: = bound_method %int_1, %specific_fn.loc17_26.1 [concrete = constants.%bound_method.9a1] @@ -111,7 +111,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc17_26.3: ref %Class = temporary_storage // CHECK:STDOUT: %.loc17_26.4: ref %i32 = class_element_access %.loc17_26.3, element0 // CHECK:STDOUT: %.loc17_26.5: init %i32 = initialize_from %.loc17_26.2 to %.loc17_26.4 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc17_26.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_26.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_26.3: = bound_method %int_2, %impl.elem0.loc17_26.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc17_26.2: = specific_function %impl.elem0.loc17_26.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_26.4: = bound_method %int_2, %specific_fn.loc17_26.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/class/local.carbon b/toolchain/check/testdata/class/local.carbon index f6e818030c1b..594c9eec28dc 100644 --- a/toolchain/check/testdata/class/local.carbon +++ b/toolchain/check/testdata/class/local.carbon @@ -46,8 +46,8 @@ class A { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -136,7 +136,7 @@ class A { // CHECK:STDOUT: } // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc15_39.1: %struct_type.n.44a = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_39.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_39.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/method.carbon b/toolchain/check/testdata/class/method.carbon index 3f6e77056cb0..9799d70e8a61 100644 --- a/toolchain/check/testdata/class/method.carbon +++ b/toolchain/check/testdata/class/method.carbon @@ -85,8 +85,8 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -342,7 +342,7 @@ fn CallGOnInitializingExpr() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc35_18.1: %struct_type.k.240 = struct_literal (%int_1) // CHECK:STDOUT: %Class.ref: type = name_ref Class, file.%Class.decl [concrete = constants.%Class] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc35_18.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc35_18.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/reorder.carbon b/toolchain/check/testdata/class/reorder.carbon index b52a0b456ece..e78ab2471028 100644 --- a/toolchain/check/testdata/class/reorder.carbon +++ b/toolchain/check/testdata/class/reorder.carbon @@ -36,8 +36,8 @@ class Class { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -104,7 +104,7 @@ class Class { // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/reorder_qualified.carbon b/toolchain/check/testdata/class/reorder_qualified.carbon index 73aa1c77d6da..f0660c63fef3 100644 --- a/toolchain/check/testdata/class/reorder_qualified.carbon +++ b/toolchain/check/testdata/class/reorder_qualified.carbon @@ -85,8 +85,8 @@ class A { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -233,7 +233,7 @@ class A { // CHECK:STDOUT: %a.var: ref %A = var a // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc29_25.1: %struct_type.a.a6c = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0.loc29: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc29: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc29_25.1: = bound_method %int_1, %impl.elem0.loc29 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc29_25.2: = bound_method %int_1, %specific_fn.loc29 [concrete = constants.%bound_method.9a1] @@ -253,7 +253,7 @@ class A { // CHECK:STDOUT: %b.var: ref %B = var b // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc30_25.1: %struct_type.b.a15 = struct_literal (%int_2) -// CHECK:STDOUT: %impl.elem0.loc30: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc30: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc30_25.1: = bound_method %int_2, %impl.elem0.loc30 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc30: = specific_function %impl.elem0.loc30, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc30_25.2: = bound_method %int_2, %specific_fn.loc30 [concrete = constants.%bound_method.b92] @@ -273,7 +273,7 @@ class A { // CHECK:STDOUT: %c.var: ref %C = var c // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc31_25.1: %struct_type.c.5b8 = struct_literal (%int_3) -// CHECK:STDOUT: %impl.elem0.loc31: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc31: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc31_25.1: = bound_method %int_3, %impl.elem0.loc31 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc31: = specific_function %impl.elem0.loc31, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc31_25.2: = bound_method %int_3, %specific_fn.loc31 [concrete = constants.%bound_method.047] @@ -293,7 +293,7 @@ class A { // CHECK:STDOUT: %d.var: ref %D = var d // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc32_25.1: %struct_type.d.3ea = struct_literal (%int_4) -// CHECK:STDOUT: %impl.elem0.loc32: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc32: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc32_25.1: = bound_method %int_4, %impl.elem0.loc32 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc32_25.2: = bound_method %int_4, %specific_fn.loc32 [concrete = constants.%bound_method.1da] diff --git a/toolchain/check/testdata/class/scope.carbon b/toolchain/check/testdata/class/scope.carbon index 60dc778e2e88..9d5efc5d3cbc 100644 --- a/toolchain/check/testdata/class/scope.carbon +++ b/toolchain/check/testdata/class/scope.carbon @@ -45,8 +45,8 @@ fn Run() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -122,7 +122,7 @@ fn Run() { // CHECK:STDOUT: fn @F.1() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] @@ -144,7 +144,7 @@ fn Run() { // CHECK:STDOUT: fn @F.2() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_11.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_11.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/class/self_conversion.carbon b/toolchain/check/testdata/class/self_conversion.carbon index c72a25a3a09f..08802bcecbc0 100644 --- a/toolchain/check/testdata/class/self_conversion.carbon +++ b/toolchain/check/testdata/class/self_conversion.carbon @@ -57,8 +57,8 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -204,7 +204,7 @@ fn Call(p: Derived*) -> i32 { // CHECK:STDOUT: %a.ref: %Base.elem = name_ref a, @Base.%.loc12_8 [concrete = @Base.%.loc12_8] // CHECK:STDOUT: %.loc27_10: ref %i32 = class_element_access %.loc27_4, element0 // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/syntactic_merge_literal.carbon b/toolchain/check/testdata/class/syntactic_merge_literal.carbon index 0b61ea04344f..c17bdd684eac 100644 --- a/toolchain/check/testdata/class/syntactic_merge_literal.carbon +++ b/toolchain/check/testdata/class/syntactic_merge_literal.carbon @@ -49,8 +49,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1000.ff9, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1000.ff9, %Convert.specific_fn [concrete] @@ -94,7 +94,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc5_20.1: type = splice_block %C.loc5 [concrete = constants.%C.262] { // CHECK:STDOUT: %C.ref.loc5: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000.loc5: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0.loc5: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc5: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_20.1: = bound_method %int_1000.loc5, %impl.elem0.loc5 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc5: = specific_function %impl.elem0.loc5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_20.2: = bound_method %int_1000.loc5, %specific_fn.loc5 [concrete = constants.%bound_method] @@ -111,7 +111,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc6_20.1: type = splice_block %C.loc6 [concrete = constants.%C.262] { // CHECK:STDOUT: %C.ref.loc6: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000.loc6: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0.loc6: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_20.1: = bound_method %int_1000.loc6, %impl.elem0.loc6 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_20.2: = bound_method %int_1000.loc6, %specific_fn.loc6 [concrete = constants.%bound_method] @@ -187,8 +187,8 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1000.ff9, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1000.ff9, %Convert.specific_fn [concrete] @@ -234,7 +234,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc5_19.1: type = splice_block %C [concrete = constants.%C.262] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_19.1: = bound_method %int_1000, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_19.2: = bound_method %int_1000, %specific_fn [concrete = constants.%bound_method] @@ -251,7 +251,7 @@ class D(b:! C(1_000)) {} // CHECK:STDOUT: %.loc13_20.1: type = splice_block %C [concrete = constants.%C.262] { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1000: Core.IntLiteral = int_value 1000 [concrete = constants.%int_1000.ff9] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_20.1: = bound_method %int_1000, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_20.2: = bound_method %int_1000, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index 51b4f2de2ea2..70c0da364e9b 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -865,8 +865,8 @@ class T2 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.b30: = bound_method %int_3.1ba, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.047: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -943,7 +943,7 @@ class T2 { // CHECK:STDOUT: } // CHECK:STDOUT: %i.var: ref %i32 = var i // CHECK:STDOUT: %int_3.loc12: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_3.1: = bound_method %int_3.loc12, %impl.elem0.loc12 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_3.2: = bound_method %int_3.loc12, %specific_fn.loc12 [concrete = constants.%bound_method.047] @@ -988,7 +988,7 @@ class T2 { // CHECK:STDOUT: %.loc15_35.2: ref %ptr.454 = class_element_access %b2.var, element0 // CHECK:STDOUT: %.loc15_35.3: ref %ptr.454 = vtable_ptr // CHECK:STDOUT: %.loc15_35.4: init %ptr.454 = initialize_from %.loc15_35.3 to %.loc15_35.2 -// CHECK:STDOUT: %impl.elem0.loc15_35.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15_35.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_35.1: = bound_method %int_5, %impl.elem0.loc15_35.1 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn.loc15_35.1: = specific_function %impl.elem0.loc15_35.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_35.2: = bound_method %int_5, %specific_fn.loc15_35.1 [concrete = constants.%bound_method.a25] @@ -996,7 +996,7 @@ class T2 { // CHECK:STDOUT: %.loc15_35.5: init %i32 = converted %int_5, %int.convert_checked.loc15_35.1 [concrete = constants.%int_5.0f6] // CHECK:STDOUT: %.loc15_35.6: ref %i32 = class_element_access %b2.var, element2 // CHECK:STDOUT: %.loc15_35.7: init %i32 = initialize_from %.loc15_35.5 to %.loc15_35.6 [concrete = constants.%int_5.0f6] -// CHECK:STDOUT: %impl.elem0.loc15_35.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15_35.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_35.3: = bound_method %int_3.loc15, %impl.elem0.loc15_35.2 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc15_35.2: = specific_function %impl.elem0.loc15_35.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_35.4: = bound_method %int_3.loc15, %specific_fn.loc15_35.2 [concrete = constants.%bound_method.047] @@ -1013,7 +1013,7 @@ class T2 { // CHECK:STDOUT: %m2.ref: %Base.elem = name_ref m2, @Base.%.loc6_9 [concrete = @Base.%.loc6_9] // CHECK:STDOUT: %.loc18_5: ref %i32 = class_element_access %b1.ref, element2 // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc18: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_9.1: = bound_method %int_4, %impl.elem0.loc18 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_9.2: = bound_method %int_4, %specific_fn.loc18 [concrete = constants.%bound_method.1da] diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index f7ce987ca181..4501de351f17 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -143,8 +143,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -231,7 +231,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // 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: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_48.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_48.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -323,8 +323,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.41f: = bound_method %N, %Convert.956 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.ad4: = bound_method %N, %Convert.specific_fn [symbolic] @@ -426,7 +426,7 @@ fn G() -> i32 { // CHECK:STDOUT: fn[%N.patt.loc6_6.1: Core.IntLiteral](%a.param_patt: @F.%array_type.loc6_42.2 (%array_type.6a2)) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %N.ref.loc6_61: Core.IntLiteral = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N)] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_62.1: = bound_method %N.ref.loc6_61, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_62.2: = bound_method %N.ref.loc6_61, %specific_fn [symbolic = %bound_method.loc6_62.3 (constants.%bound_method.ad4)] @@ -677,8 +677,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -766,7 +766,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // 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: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_48.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_48.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -859,8 +859,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.41f: = bound_method %N, %Convert.956 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.ad4: = bound_method %N, %Convert.specific_fn [symbolic] @@ -973,7 +973,7 @@ fn G() -> i32 { // CHECK:STDOUT: fn[%N.patt.loc7_6.1: Core.IntLiteral](%a.param_patt: @F.%array_type.loc7_42.2 (%array_type.6a2)) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %N.ref.loc7_61: Core.IntLiteral = name_ref N, %N.loc7_6.1 [symbolic = %N.loc7_6.2 (constants.%N)] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_62.1: = bound_method %N.ref.loc7_61, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound.41f)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_62.2: = bound_method %N.ref.loc7_61, %specific_fn [symbolic = %bound_method.loc7_62.3 (constants.%bound_method.ad4)] @@ -1059,8 +1059,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %N.51e, %Convert.specific_fn [symbolic] @@ -1117,7 +1117,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc6_28: type = splice_block %array_type.loc6_28.1 [symbolic = %array_type.loc6_28.2 (constants.%array_type.b2f)] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %N.ref.loc6_27: %i32 = name_ref N, %N.loc6_6.1 [symbolic = %N.loc6_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %impl.elem0: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc6_27.1: = bound_method %N.ref.loc6_27, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_27.2: = bound_method %N.ref.loc6_27, %specific_fn [symbolic = %bound_method.loc6_27.3 (constants.%bound_method)] diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index f067db7d1c60..8ccdf14b06f1 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -738,8 +738,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -846,7 +846,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc9_13.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %WithNontype.ref: %WithNontype.type = name_ref WithNontype, file.%WithNontype.decl [concrete = constants.%WithNontype.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_31.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_31.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index c908bb748520..3840179af73d 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -247,8 +247,8 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -341,14 +341,14 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc8_22.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc8_22.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc8_22.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_22.1: = bound_method %int_1, %impl.elem0.loc8_22.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc8_22.1: = specific_function %impl.elem0.loc8_22.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_22.2: = bound_method %int_1, %specific_fn.loc8_22.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc8_22.1: init %i32 = call %bound_method.loc8_22.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_22.2: %i32 = value_of_initializer %int.convert_checked.loc8_22.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc8_22.3: %i32 = converted %int_1, %.loc8_22.2 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc8_22.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc8_22.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_22.3: = bound_method %int_2, %impl.elem0.loc8_22.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc8_22.2: = specific_function %impl.elem0.loc8_22.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_22.4: = bound_method %int_2, %specific_fn.loc8_22.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/eval/aggregate.carbon b/toolchain/check/testdata/eval/aggregate.carbon index 32422d04b2cd..e296a048fe8d 100644 --- a/toolchain/check/testdata/eval/aggregate.carbon +++ b/toolchain/check/testdata/eval/aggregate.carbon @@ -31,8 +31,8 @@ var struct_access: array(i32, 1) = (0,) as array(i32, {.a = 3, .b = 1}.b); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -150,14 +150,14 @@ var struct_access: array(i32, 1) = (0,) as array(i32, {.a = 3, .b = 1}.b); // CHECK:STDOUT: %i32.loc11_46: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %.loc11_49.1: %tuple.type.24b = tuple_literal (%i32.loc11_41, %i32.loc11_46) // CHECK:STDOUT: %.loc11_49.2: type = converted %.loc11_49.1, constants.%tuple.type.d07 [concrete = constants.%tuple.type.d07] -// CHECK:STDOUT: %impl.elem0.loc11_35.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_35.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_35.1: = bound_method %int_1.loc11, %impl.elem0.loc11_35.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_35.1: = specific_function %impl.elem0.loc11_35.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_35.2: = bound_method %int_1.loc11, %specific_fn.loc11_35.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc11_35.1: init %i32 = call %bound_method.loc11_35.2(%int_1.loc11) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc11_35.2: %i32 = value_of_initializer %int.convert_checked.loc11_35.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc11_35.3: %i32 = converted %int_1.loc11, %.loc11_35.2 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc11_35.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_35.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_35.3: = bound_method %int_2.loc11, %impl.elem0.loc11_35.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_35.2: = specific_function %impl.elem0.loc11_35.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_35.4: = bound_method %int_2.loc11, %specific_fn.loc11_35.2 [concrete = constants.%bound_method.b92] @@ -186,21 +186,21 @@ var struct_access: array(i32, 1) = (0,) as array(i32, {.a = 3, .b = 1}.b); // CHECK:STDOUT: %int_32.loc13_99: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc13_99: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.b.a.c: type = struct_type {.b: %i32, .a: %i32, .c: %i32} [concrete = constants.%struct_type.b.a.c] -// CHECK:STDOUT: %impl.elem0.loc13_71.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_71.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_71.1: = bound_method %int_2.loc13, %impl.elem0.loc13_71.1 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc13_71.1: = specific_function %impl.elem0.loc13_71.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_71.2: = bound_method %int_2.loc13, %specific_fn.loc13_71.1 [concrete = constants.%bound_method.b92] // CHECK:STDOUT: %int.convert_checked.loc13_71.1: init %i32 = call %bound_method.loc13_71.2(%int_2.loc13) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_71.2: %i32 = value_of_initializer %int.convert_checked.loc13_71.1 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_71.3: %i32 = converted %int_2.loc13, %.loc13_71.2 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc13_71.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_71.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_71.3: = bound_method %int_1.loc13, %impl.elem0.loc13_71.2 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc13_71.2: = specific_function %impl.elem0.loc13_71.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_71.4: = bound_method %int_1.loc13, %specific_fn.loc13_71.2 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc13_71.2: init %i32 = call %bound_method.loc13_71.4(%int_1.loc13) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_71.4: %i32 = value_of_initializer %int.convert_checked.loc13_71.2 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_71.5: %i32 = converted %int_1.loc13, %.loc13_71.4 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc13_71.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_71.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_71.5: = bound_method %int_3.loc13, %impl.elem0.loc13_71.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc13_71.3: = specific_function %impl.elem0.loc13_71.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_71.6: = bound_method %int_3.loc13, %specific_fn.loc13_71.3 [concrete = constants.%bound_method.047] @@ -235,7 +235,7 @@ var struct_access: array(i32, 1) = (0,) as array(i32, {.a = 3, .b = 1}.b); // CHECK:STDOUT: %.loc15_64.2: %tuple.type.d46 = converted %.loc15_64.1, %tuple.loc15 [concrete = constants.%tuple.869] // CHECK:STDOUT: %tuple.elem2: Core.IntLiteral = tuple_access %.loc15_64.2, element2 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type.loc15: type = array_type %tuple.elem2, %i32 [concrete = constants.%array_type] -// CHECK:STDOUT: %impl.elem0.loc15: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_37.1: = bound_method %int_0.loc15_35, %impl.elem0.loc15 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_37.2: = bound_method %int_0.loc15_35, %specific_fn.loc15 [concrete = constants.%bound_method.b6e] @@ -259,7 +259,7 @@ var struct_access: array(i32, 1) = (0,) as array(i32, {.a = 3, .b = 1}.b); // CHECK:STDOUT: %.loc17_70.2: %struct_type.a.b = converted %.loc17_70.1, %struct.loc17 [concrete = constants.%struct.a81] // CHECK:STDOUT: %.loc17_71: Core.IntLiteral = struct_access %.loc17_70.2, element1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %array_type.loc17: type = array_type %.loc17_71, %i32 [concrete = constants.%array_type] -// CHECK:STDOUT: %impl.elem0.loc17: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_39.1: = bound_method %int_0.loc17_37, %impl.elem0.loc17 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_39.2: = bound_method %int_0.loc17_37, %specific_fn.loc17 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/eval/fail_aggregate.carbon b/toolchain/check/testdata/eval/fail_aggregate.carbon index e2b0eab3b4f1..d1b758f9dad5 100644 --- a/toolchain/check/testdata/eval/fail_aggregate.carbon +++ b/toolchain/check/testdata/eval/fail_aggregate.carbon @@ -36,8 +36,8 @@ var array_index: array(i32, 1) = (0,) as array(i32, ((5, 7, 1, 9) as array(i32, // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.4e6: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.a25: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -103,7 +103,7 @@ var array_index: array(i32, 1) = (0,) as array(i32, ((5, 7, 1, 9) as array(i32, // CHECK:STDOUT: %i32.loc17_76: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] // CHECK:STDOUT: %array_type: type = array_type %int_4, %i32 [concrete = constants.%array_type.f32] -// CHECK:STDOUT: %impl.elem0.loc17_65.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_65.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_65.1: = bound_method %int_5, %impl.elem0.loc17_65.1 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn.loc17_65.1: = specific_function %impl.elem0.loc17_65.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_65.2: = bound_method %int_5, %specific_fn.loc17_65.1 [concrete = constants.%bound_method.a25] @@ -113,7 +113,7 @@ var array_index: array(i32, 1) = (0,) as array(i32, ((5, 7, 1, 9) as array(i32, // CHECK:STDOUT: %int_0.loc17_65: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc17_65.4: ref %i32 = array_index %.loc17_65.3, %int_0.loc17_65 // CHECK:STDOUT: %.loc17_65.5: init %i32 = initialize_from %.loc17_65.2 to %.loc17_65.4 [concrete = constants.%int_5.0f6] -// CHECK:STDOUT: %impl.elem0.loc17_65.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_65.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_65.3: = bound_method %int_7, %impl.elem0.loc17_65.2 [concrete = constants.%Convert.bound.208] // CHECK:STDOUT: %specific_fn.loc17_65.2: = specific_function %impl.elem0.loc17_65.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_65.4: = bound_method %int_7, %specific_fn.loc17_65.2 [concrete = constants.%bound_method.3bd] @@ -122,7 +122,7 @@ var array_index: array(i32, 1) = (0,) as array(i32, ((5, 7, 1, 9) as array(i32, // CHECK:STDOUT: %int_1.loc17_65: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc17_65.7: ref %i32 = array_index %.loc17_65.3, %int_1.loc17_65 // CHECK:STDOUT: %.loc17_65.8: init %i32 = initialize_from %.loc17_65.6 to %.loc17_65.7 [concrete = constants.%int_7.0b1] -// CHECK:STDOUT: %impl.elem0.loc17_65.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_65.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_65.5: = bound_method %int_1.loc17_61, %impl.elem0.loc17_65.3 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc17_65.3: = specific_function %impl.elem0.loc17_65.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_65.6: = bound_method %int_1.loc17_61, %specific_fn.loc17_65.3 [concrete = constants.%bound_method.9a1] @@ -131,7 +131,7 @@ var array_index: array(i32, 1) = (0,) as array(i32, ((5, 7, 1, 9) as array(i32, // CHECK:STDOUT: %int_2.loc17_65: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc17_65.10: ref %i32 = array_index %.loc17_65.3, %int_2.loc17_65 // CHECK:STDOUT: %.loc17_65.11: init %i32 = initialize_from %.loc17_65.9 to %.loc17_65.10 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc17_65.4: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_65.4: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_65.7: = bound_method %int_9, %impl.elem0.loc17_65.4 [concrete = constants.%Convert.bound.9e2] // CHECK:STDOUT: %specific_fn.loc17_65.4: = specific_function %impl.elem0.loc17_65.4, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_65.8: = bound_method %int_9, %specific_fn.loc17_65.4 [concrete = constants.%bound_method.cd3] @@ -146,7 +146,7 @@ var array_index: array(i32, 1) = (0,) as array(i32, ((5, 7, 1, 9) as array(i32, // CHECK:STDOUT: %.loc17_67.2: ref %array_type.f32 = temporary %.loc17_65.3, %.loc17_67.1 // CHECK:STDOUT: %int_32.loc17_86: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc17_86: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc17_85: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_85: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_85.1: = bound_method %int_2.loc17_85, %impl.elem0.loc17_85 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc17_85: = specific_function %impl.elem0.loc17_85, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_85.2: = bound_method %int_2.loc17_85, %specific_fn.loc17_85 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/eval/symbolic.carbon b/toolchain/check/testdata/eval/symbolic.carbon index ee05cb8bb3ff..8a983ee2c13d 100644 --- a/toolchain/check/testdata/eval/symbolic.carbon +++ b/toolchain/check/testdata/eval/symbolic.carbon @@ -47,8 +47,8 @@ fn G(N:! i32) { // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %N.51e, %Convert.specific_fn [symbolic] @@ -166,7 +166,7 @@ fn G(N:! i32) { // CHECK:STDOUT: %int_32.loc19: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc19: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc18_6.1 [symbolic = %N.loc18_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %impl.elem0: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc19_21.1: = bound_method %N.ref, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_21.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc19_21.3 (constants.%bound_method)] diff --git a/toolchain/check/testdata/facet/no_prelude/access.carbon b/toolchain/check/testdata/facet/no_prelude/access.carbon index f1af24b7f225..b61721231c1a 100644 --- a/toolchain/check/testdata/facet/no_prelude/access.carbon +++ b/toolchain/check/testdata/facet/no_prelude/access.carbon @@ -97,10 +97,10 @@ var v: ().(Id(I.T)); // 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.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.d9e: type = fn_type_with_self_type %DoIt.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.d9e = impl_witness_access %T.as_wit, element0 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.4a9: type = fn_type_with_self_type %DoIt.type, %I.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.4a9 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @DoIt(%I.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -139,10 +139,10 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_8.2 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc9_4.2: = facet_access_witness %T.loc8_8.2 [symbolic = %T.as_wit.loc9_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc9_4.2, %T.as_wit.loc9_4.2 [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%DoIt.type, %I.facet [symbolic = %.loc9_4.2 (constants.%.d9e)] -// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Use.%.loc9_4.2 (%.d9e) = impl_witness_access %T.as_wit.loc9_4.2, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_4.2: = facet_access_witness %T.loc8_8.2, element0 [symbolic = %T.as_wit.iface0.loc9_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc9_4.2, (%T.as_wit.iface0.loc9_4.2) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%DoIt.type, %I.facet [symbolic = %.loc9_4.2 (constants.%.4a9)] +// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Use.%.loc9_4.2 (%.4a9) = impl_witness_access %T.as_wit.iface0.loc9_4.2, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_4.2: = specific_function %impl.elem0.loc9_4.2, @DoIt(%I.facet) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.loc8_8.1: %I.type) { @@ -151,8 +151,8 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: %DoIt.ref: %I.assoc_type = name_ref DoIt, @I.%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_wit.loc9_4.1: = facet_access_witness %T.ref [symbolic = %T.as_wit.loc9_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Use.%.loc9_4.2 (%.d9e) = impl_witness_access %T.as_wit.loc9_4.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_4.1: = facet_access_witness %T.ref, element0 [symbolic = %T.as_wit.iface0.loc9_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Use.%.loc9_4.2 (%.4a9) = impl_witness_access %T.as_wit.iface0.loc9_4.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_4.1: = specific_function %impl.elem0.loc9_4.1, @DoIt(constants.%I.facet) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn)] // CHECK:STDOUT: %DoIt.call: init %empty_tuple.type = call %specific_fn.loc9_4.1() // CHECK:STDOUT: return @@ -186,10 +186,10 @@ var v: ().(Id(I.T)); // 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: %T.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.aaf: type = fn_type_with_self_type %Make.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.aaf = impl_witness_access %T.as_wit, element0 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.878: type = fn_type_with_self_type %Make.type, %I.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.878 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Make(%I.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -248,10 +248,10 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @Use.%T.as_type.loc8_18.2 (%T.as_type) [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %T.as_wit.loc9_11.2: = facet_access_witness %T.loc8_8.2 [symbolic = %T.as_wit.loc9_11.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, %T.as_wit.loc9_11.2 [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc9_11.2: type = fn_type_with_self_type constants.%Make.type, %I.facet [symbolic = %.loc9_11.2 (constants.%.aaf)] -// CHECK:STDOUT: %impl.elem0.loc9_11.2: @Use.%.loc9_11.2 (%.aaf) = impl_witness_access %T.as_wit.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_11.2: = facet_access_witness %T.loc8_8.2, element0 [symbolic = %T.as_wit.iface0.loc9_11.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, (%T.as_wit.iface0.loc9_11.2) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %.loc9_11.2: type = fn_type_with_self_type constants.%Make.type, %I.facet [symbolic = %.loc9_11.2 (constants.%.878)] +// CHECK:STDOUT: %impl.elem0.loc9_11.2: @Use.%.loc9_11.2 (%.878) = impl_witness_access %T.as_wit.iface0.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_11.2: = specific_function %impl.elem0.loc9_11.2, @Make(%I.facet) [symbolic = %specific_fn.loc9_11.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.loc8_8.1: %I.type) -> @Use.%T.as_type.loc8_18.2 (%T.as_type) { @@ -260,8 +260,8 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: %Make.ref: %I.assoc_type = name_ref Make, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type %T.ref.loc9 [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_11.1: type = converted %T.ref.loc9, %T.as_type.loc9 [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc9_11.1: = facet_access_witness %T.ref.loc9 [symbolic = %T.as_wit.loc9_11.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc9_11.1: @Use.%.loc9_11.2 (%.aaf) = impl_witness_access %T.as_wit.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_11.1: = facet_access_witness %T.ref.loc9, element0 [symbolic = %T.as_wit.iface0.loc9_11.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc9_11.1: @Use.%.loc9_11.2 (%.878) = impl_witness_access %T.as_wit.iface0.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_11.1: = specific_function %impl.elem0.loc9_11.1, @Make(constants.%I.facet) [symbolic = %specific_fn.loc9_11.2 (constants.%specific_fn)] // CHECK:STDOUT: %Make.call: init @Use.%T.as_type.loc8_18.2 (%T.as_type) = call %specific_fn.loc9_11.1() // CHECK:STDOUT: %.loc9_18.1: @Use.%T.as_type.loc8_18.2 (%T.as_type) = value_of_initializer %Make.call @@ -304,10 +304,10 @@ var v: ().(Id(I.T)); // 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: %T.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.4ef: type = fn_type_with_self_type %Copy.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.4ef = impl_witness_access %T.as_wit, element0 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.f63: type = fn_type_with_self_type %Copy.type, %I.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.f63 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Copy(%I.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -384,10 +384,10 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @Use.%T.as_type.loc8_18.2 (%T.as_type) [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %T.as_wit.loc9_11.2: = facet_access_witness %T.loc8_8.2 [symbolic = %T.as_wit.loc9_11.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, %T.as_wit.loc9_11.2 [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc9_11.2: type = fn_type_with_self_type constants.%Copy.type, %I.facet [symbolic = %.loc9_11.2 (constants.%.4ef)] -// CHECK:STDOUT: %impl.elem0.loc9_11.2: @Use.%.loc9_11.2 (%.4ef) = impl_witness_access %T.as_wit.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_11.2: = facet_access_witness %T.loc8_8.2, element0 [symbolic = %T.as_wit.iface0.loc9_11.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, (%T.as_wit.iface0.loc9_11.2) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %.loc9_11.2: type = fn_type_with_self_type constants.%Copy.type, %I.facet [symbolic = %.loc9_11.2 (constants.%.f63)] +// CHECK:STDOUT: %impl.elem0.loc9_11.2: @Use.%.loc9_11.2 (%.f63) = impl_witness_access %T.as_wit.iface0.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_11.2: = specific_function %impl.elem0.loc9_11.2, @Copy(%I.facet) [symbolic = %specific_fn.loc9_11.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc8_8.1: %I.type](%x.param_patt: @Use.%T.as_type.loc8_18.2 (%T.as_type)) -> @Use.%T.as_type.loc8_18.2 (%T.as_type) { @@ -396,8 +396,8 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_11.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc9_11.1: = facet_access_witness constants.%T [symbolic = %T.as_wit.loc9_11.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc9_11.1: @Use.%.loc9_11.2 (%.4ef) = impl_witness_access %T.as_wit.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_11.1: = facet_access_witness constants.%T, element0 [symbolic = %T.as_wit.iface0.loc9_11.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc9_11.1: @Use.%.loc9_11.2 (%.f63) = impl_witness_access %T.as_wit.iface0.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc9_11: = bound_method %x.ref, %impl.elem0.loc9_11.1 // CHECK:STDOUT: %specific_fn.loc9_11.1: = specific_function %impl.elem0.loc9_11.1, @Copy(constants.%I.facet) [symbolic = %specific_fn.loc9_11.2 (constants.%specific_fn)] // CHECK:STDOUT: %bound_method.loc9_17: = bound_method %x.ref, %specific_fn.loc9_11.1 @@ -442,10 +442,10 @@ var v: ().(Id(I.T)); // 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: %T.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.33b: type = fn_type_with_self_type %Hello.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.33b = impl_witness_access %T.as_wit, element0 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.d6b: type = fn_type_with_self_type %Hello.type, %I.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.d6b = impl_witness_access %T.as_wit.iface0, element0 [symbolic] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Hello(%I.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -494,10 +494,10 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @Use.%T.as_type.loc8_18.2 (%T.as_type) [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %T.as_wit.loc9_4.2: = facet_access_witness %T.loc8_8.2 [symbolic = %T.as_wit.loc9_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, %T.as_wit.loc9_4.2 [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%Hello.type, %I.facet [symbolic = %.loc9_4.2 (constants.%.33b)] -// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Use.%.loc9_4.2 (%.33b) = impl_witness_access %T.as_wit.loc9_4.2, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_4.2: = facet_access_witness %T.loc8_8.2, element0 [symbolic = %T.as_wit.iface0.loc9_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_18.2, (%T.as_wit.iface0.loc9_4.2) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%Hello.type, %I.facet [symbolic = %.loc9_4.2 (constants.%.d6b)] +// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Use.%.loc9_4.2 (%.d6b) = impl_witness_access %T.as_wit.iface0.loc9_4.2, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_4.2: = specific_function %impl.elem0.loc9_4.2, @Hello(%I.facet) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc8_8.1: %I.type](%x.param_patt: @Use.%T.as_type.loc8_18.2 (%T.as_type)) { @@ -506,8 +506,8 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: %Hello.ref: %I.assoc_type = name_ref Hello, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type constants.%T [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_4.1: type = converted constants.%T, %T.as_type.loc9 [symbolic = %T.as_type.loc8_18.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc9_4.1: = facet_access_witness constants.%T [symbolic = %T.as_wit.loc9_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Use.%.loc9_4.2 (%.33b) = impl_witness_access %T.as_wit.loc9_4.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_4.1: = facet_access_witness constants.%T, element0 [symbolic = %T.as_wit.iface0.loc9_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Use.%.loc9_4.2 (%.d6b) = impl_witness_access %T.as_wit.iface0.loc9_4.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_4.1: = specific_function %impl.elem0.loc9_4.1, @Hello(constants.%I.facet) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn)] // CHECK:STDOUT: %Hello.call: init %empty_tuple.type = call %specific_fn.loc9_4.1() // CHECK:STDOUT: return @@ -542,10 +542,10 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: %UseIndirect.type: type = fn_type @UseIndirect [concrete] // CHECK:STDOUT: %UseIndirect: %UseIndirect.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %T.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.4ef: type = fn_type_with_self_type %Copy.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.4ef = impl_witness_access %T.as_wit, element0 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.f63: type = fn_type_with_self_type %Copy.type, %I.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.f63 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Copy(%I.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -622,10 +622,10 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type) [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %T.as_wit.loc9_14.2: = facet_access_witness %T.loc8_16.2 [symbolic = %T.as_wit.loc9_14.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_26.2, %T.as_wit.loc9_14.2 [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc9_14.2: type = fn_type_with_self_type constants.%Copy.type, %I.facet [symbolic = %.loc9_14.2 (constants.%.4ef)] -// CHECK:STDOUT: %impl.elem0.loc9_14.2: @UseIndirect.%.loc9_14.2 (%.4ef) = impl_witness_access %T.as_wit.loc9_14.2, element0 [symbolic = %impl.elem0.loc9_14.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_14.2: = facet_access_witness %T.loc8_16.2, element0 [symbolic = %T.as_wit.iface0.loc9_14.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc8_26.2, (%T.as_wit.iface0.loc9_14.2) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %.loc9_14.2: type = fn_type_with_self_type constants.%Copy.type, %I.facet [symbolic = %.loc9_14.2 (constants.%.f63)] +// CHECK:STDOUT: %impl.elem0.loc9_14.2: @UseIndirect.%.loc9_14.2 (%.f63) = impl_witness_access %T.as_wit.iface0.loc9_14.2, element0 [symbolic = %impl.elem0.loc9_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc9_14.2: = specific_function %impl.elem0.loc9_14.2, @Copy(%I.facet) [symbolic = %specific_fn.loc9_14.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc8_16.1: %I.type](%x.param_patt: @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type)) -> @UseIndirect.%T.as_type.loc8_26.2 (%T.as_type) { @@ -635,8 +635,8 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc9: type = facet_access_type %T.ref.loc9 [symbolic = %T.as_type.loc8_26.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc9_14.1: type = converted %T.ref.loc9, %T.as_type.loc9 [symbolic = %T.as_type.loc8_26.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc9_14.1: = facet_access_witness %T.ref.loc9 [symbolic = %T.as_wit.loc9_14.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc9_14.1: @UseIndirect.%.loc9_14.2 (%.4ef) = impl_witness_access %T.as_wit.loc9_14.1, element0 [symbolic = %impl.elem0.loc9_14.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_14.1: = facet_access_witness %T.ref.loc9, element0 [symbolic = %T.as_wit.iface0.loc9_14.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc9_14.1: @UseIndirect.%.loc9_14.2 (%.f63) = impl_witness_access %T.as_wit.iface0.loc9_14.1, element0 [symbolic = %impl.elem0.loc9_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc9_11: = bound_method %x.ref, %impl.elem0.loc9_14.1 // CHECK:STDOUT: %specific_fn.loc9_14.1: = specific_function %impl.elem0.loc9_14.1, @Copy(constants.%I.facet) [symbolic = %specific_fn.loc9_14.2 (constants.%specific_fn)] // CHECK:STDOUT: %bound_method.loc9_21: = bound_method %x.ref, %specific_fn.loc9_14.1 @@ -680,9 +680,9 @@ var v: ().(Id(I.T)); // CHECK:STDOUT: %require_complete: = require_complete_type %U [symbolic] // 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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%empty_tuple.type) [concrete] // CHECK:STDOUT: %Id.specific_fn: = specific_function %Id, @Id(%I.assoc_type) [concrete] @@ -720,8 +720,8 @@ var v: ().(Id(I.T)); // 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: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_26.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc5_26.2: type = converted %.loc5_26.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc5_14: type = where_expr %.Self [concrete = constants.%I_where.type] { diff --git a/toolchain/check/testdata/facet/no_prelude/fail_todo_call_combined_impl_witness.carbon b/toolchain/check/testdata/facet/no_prelude/fail_todo_call_combined_impl_witness.carbon index 3719d1972e65..f96234a98cc2 100644 --- a/toolchain/check/testdata/facet/no_prelude/fail_todo_call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/no_prelude/fail_todo_call_combined_impl_witness.carbon @@ -69,31 +69,17 @@ fn G[T:! A & Empty & B](t: T) { // CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: T.(A.AA)(); - // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE+10]]:3: error: cannot implicitly convert value of type `Empty & A & B` to `B` [ImplicitAsConversionFailure] + // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE+7]]:3: error: cannot implicitly convert value of type `Empty & A & B` to `B` [ImplicitAsConversionFailure] // CHECK:STDERR: T.(B.BB)(); // CHECK:STDERR: ^~~~~~~~ - // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE+7]]:3: note: type `Empty & A & B` does not implement interface `Core.ImplicitAs(B)` [MissingImplInMemberAccessNote] + // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE+4]]:3: note: type `Empty & A & B` does not implement interface `Core.ImplicitAs(B)` [MissingImplInMemberAccessNote] // CHECK:STDERR: T.(B.BB)(); // CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: - // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE-24]]:3: error: semantics TODO: `incorrect witness for multiple interfaces in a facet type` [SemanticsTodo] - // CHECK:STDERR: t.AA(); - // CHECK:STDERR: ^~~~ T.(B.BB)(); } fn F() { - // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE+11]]:3: note: in `G(C as Empty & A & B)` used here [ResolvingSpecificHere] - // CHECK:STDERR: G({} as C); - // CHECK:STDERR: ^ - // CHECK:STDERR: - // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE-34]]:3: error: semantics TODO: `incorrect witness for multiple interfaces in a facet type` [SemanticsTodo] - // CHECK:STDERR: t.BB(); - // CHECK:STDERR: ^~~~ - // CHECK:STDERR: fail_todo_call_combined_impl_witness.carbon:[[@LINE+4]]:3: note: in `G(C as Empty & A & B)` used here [ResolvingSpecificHere] - // CHECK:STDERR: G({} as C); - // CHECK:STDERR: ^ - // CHECK:STDERR: G({} as C); } @@ -133,7 +119,7 @@ fn F() { // CHECK:STDOUT: %Op.type.28d: type = fn_type @Op.2, @impl(%T) [symbolic] // CHECK:STDOUT: %Op.902: %Op.type.28d = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, %impl_witness [symbolic] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, (%impl_witness) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -433,11 +419,11 @@ fn F() { // CHECK:STDOUT: %impl_witness.97a: = impl_witness (@impl.77d.%AA.decl) [concrete] // CHECK:STDOUT: %AA.type.c29: type = fn_type @AA.2 [concrete] // CHECK:STDOUT: %AA.95d: %AA.type.c29 = struct_value () [concrete] -// CHECK:STDOUT: %A.facet.afe: %A.type = facet_value %C, %impl_witness.97a [concrete] +// CHECK:STDOUT: %A.facet.213: %A.type = facet_value %C, (%impl_witness.97a) [concrete] // CHECK:STDOUT: %impl_witness.fe4: = impl_witness (@impl.c94.%BB.decl) [concrete] // CHECK:STDOUT: %BB.type.24d: type = fn_type @BB.2 [concrete] // CHECK:STDOUT: %BB.fe8: %BB.type.24d = struct_value () [concrete] -// CHECK:STDOUT: %B.facet.3a2: %B.type = facet_value %C, %impl_witness.fe4 [concrete] +// CHECK:STDOUT: %B.facet.f74: %B.type = facet_value %C, (%impl_witness.fe4) [concrete] // CHECK:STDOUT: %BitAnd.type: type = facet_type <@BitAnd> [concrete] // CHECK:STDOUT: %Self.25f: %BitAnd.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %BitAnd.assoc_type: type = assoc_entity_type %BitAnd.type [concrete] @@ -456,8 +442,8 @@ fn F() { // CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl.f92(type) [concrete] // CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.473: = complete_type_witness type [concrete] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, %impl_witness.3ea [concrete] -// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete] +// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] // CHECK:STDOUT: %Op.bound.6b1: = bound_method %A.type, %Op.444 [concrete] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.444, @Op.2(type) [concrete] // CHECK:STDOUT: %bound_method.96c: = bound_method %A.type, %Op.specific_fn [concrete] @@ -471,15 +457,16 @@ fn F() { // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.383: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %T.as_wit: = facet_access_witness %T.2df [symbolic] -// CHECK:STDOUT: %A.facet.d6d: %A.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.124: type = fn_type_with_self_type %AA.type.b97, %A.facet.d6d [symbolic] -// CHECK:STDOUT: %impl.elem0.2b1: %.124 = impl_witness_access %T.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn.80f: = specific_function %impl.elem0.2b1, @AA.1(%A.facet.d6d) [symbolic] -// CHECK:STDOUT: %B.facet.1c2: %B.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.e3a: type = fn_type_with_self_type %BB.type.64d, %B.facet.1c2 [symbolic] -// CHECK:STDOUT: %impl.elem0.f5b: %.e3a = impl_witness_access %T.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn.62f: = specific_function %impl.elem0.f5b, @BB.1(%B.facet.1c2) [symbolic] +// CHECK:STDOUT: %T.as_wit.iface1: = facet_access_witness %T.2df, element1 [symbolic] +// CHECK:STDOUT: %A.facet.5b4: %A.type = facet_value %T.as_type, (%T.as_wit.iface1) [symbolic] +// CHECK:STDOUT: %.860: type = fn_type_with_self_type %AA.type.b97, %A.facet.5b4 [symbolic] +// CHECK:STDOUT: %impl.elem0.656: %.860 = impl_witness_access %T.as_wit.iface1, element0 [symbolic] +// CHECK:STDOUT: %specific_fn.74e: = specific_function %impl.elem0.656, @AA.1(%A.facet.5b4) [symbolic] +// CHECK:STDOUT: %T.as_wit.iface2: = facet_access_witness %T.2df, element2 [symbolic] +// CHECK:STDOUT: %B.facet.abf: %B.type = facet_value %T.as_type, (%T.as_wit.iface2) [symbolic] +// CHECK:STDOUT: %.a5b: type = fn_type_with_self_type %BB.type.64d, %B.facet.abf [symbolic] +// CHECK:STDOUT: %impl.elem0.097: %.a5b = impl_witness_access %T.as_wit.iface2, element0 [symbolic] +// CHECK:STDOUT: %specific_fn.9fa: = specific_function %impl.elem0.097, @BB.1(%B.facet.abf) [symbolic] // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.d62: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] // CHECK:STDOUT: %Self.519: %ImplicitAs.type.d62 = bind_symbolic_name Self, 1 [symbolic] @@ -503,12 +490,12 @@ fn F() { // 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] -// CHECK:STDOUT: %facet_value: %facet_type.242 = facet_value %C, %impl_witness.1bc [concrete] +// CHECK:STDOUT: %facet_value: %facet_type.242 = facet_value %C, (%impl_witness.1bc, %impl_witness.97a, %impl_witness.fe4) [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%facet_value) [concrete] -// CHECK:STDOUT: %A.facet.beb: %A.type = facet_value %C, %impl_witness.1bc [concrete] -// CHECK:STDOUT: %.778: type = fn_type_with_self_type %AA.type.b97, %A.facet.beb [concrete] -// CHECK:STDOUT: %B.facet.5e0: %B.type = facet_value %C, %impl_witness.1bc [concrete] -// CHECK:STDOUT: %.555: type = fn_type_with_self_type %BB.type.64d, %B.facet.5e0 [concrete] +// CHECK:STDOUT: %.4b2: type = fn_type_with_self_type %AA.type.b97, %A.facet.213 [concrete] +// CHECK:STDOUT: %AA.specific_fn: = specific_function %AA.95d, @AA.1(%A.facet.213) [concrete] +// CHECK:STDOUT: %.2b4: type = fn_type_with_self_type %BB.type.64d, %B.facet.f74 [concrete] +// CHECK:STDOUT: %BB.specific_fn: = specific_function %BB.fe8, @BB.1(%B.facet.f74) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -574,13 +561,13 @@ fn F() { // CHECK:STDOUT: %.loc24_20.1: type = splice_block %.loc24_20.3 [concrete = constants.%facet_type.242] { // CHECK:STDOUT: %A.ref.loc24: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %Empty.ref: type = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.type] -// CHECK:STDOUT: %impl.elem0.loc24_12: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc24_12: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc24_12.1: = bound_method %A.ref.loc24, %impl.elem0.loc24_12 [concrete = constants.%Op.bound.6b1] // CHECK:STDOUT: %specific_fn.loc24_12: = specific_function %impl.elem0.loc24_12, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc24_12.2: = bound_method %A.ref.loc24, %specific_fn.loc24_12 [concrete = constants.%bound_method.96c] // CHECK:STDOUT: %type.and.loc24_12: init type = call %bound_method.loc24_12.2(%A.ref.loc24, %Empty.ref) [concrete = constants.%facet_type.d5f] // CHECK:STDOUT: %B.ref.loc24: type = name_ref B, file.%B.decl [concrete = constants.%B.type] -// CHECK:STDOUT: %impl.elem0.loc24_20: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc24_20: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc24_20.1: = bound_method %type.and.loc24_12, %impl.elem0.loc24_20 [concrete = constants.%Op.bound.b5b] // CHECK:STDOUT: %specific_fn.loc24_20: = specific_function %impl.elem0.loc24_20, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc24_20.2: = bound_method %type.and.loc24_12, %specific_fn.loc24_20 [concrete = constants.%bound_method.cb6] @@ -748,15 +735,16 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @G.%T.as_type.loc24_28.2 (%T.as_type) [symbolic = %require_complete (constants.%require_complete.383)] -// CHECK:STDOUT: %T.as_wit.loc25_4.2: = facet_access_witness %T.loc24_6.2 [symbolic = %T.as_wit.loc25_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %T.as_type.loc24_28.2, %T.as_wit.loc25_4.2 [symbolic = %A.facet (constants.%A.facet.d6d)] -// CHECK:STDOUT: %.loc25_4.2: type = fn_type_with_self_type constants.%AA.type.b97, %A.facet [symbolic = %.loc25_4.2 (constants.%.124)] -// CHECK:STDOUT: %impl.elem0.loc25_4.2: @G.%.loc25_4.2 (%.124) = impl_witness_access %T.as_wit.loc25_4.2, element0 [symbolic = %impl.elem0.loc25_4.2 (constants.%impl.elem0.2b1)] -// CHECK:STDOUT: %specific_fn.loc25_4.2: = specific_function %impl.elem0.loc25_4.2, @AA.1(%A.facet) [symbolic = %specific_fn.loc25_4.2 (constants.%specific_fn.80f)] -// CHECK:STDOUT: %B.facet: %B.type = facet_value %T.as_type.loc24_28.2, %T.as_wit.loc25_4.2 [symbolic = %B.facet (constants.%B.facet.1c2)] -// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type constants.%BB.type.64d, %B.facet [symbolic = %.loc26_4.2 (constants.%.e3a)] -// CHECK:STDOUT: %impl.elem0.loc26_4.2: @G.%.loc26_4.2 (%.e3a) = impl_witness_access %T.as_wit.loc25_4.2, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.f5b)] -// CHECK:STDOUT: %specific_fn.loc26_4.2: = specific_function %impl.elem0.loc26_4.2, @BB.1(%B.facet) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.62f)] +// CHECK:STDOUT: %T.as_wit.iface1.loc25_4.2: = facet_access_witness %T.loc24_6.2, element1 [symbolic = %T.as_wit.iface1.loc25_4.2 (constants.%T.as_wit.iface1)] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %T.as_type.loc24_28.2, (%T.as_wit.iface1.loc25_4.2) [symbolic = %A.facet (constants.%A.facet.5b4)] +// CHECK:STDOUT: %.loc25_4.2: type = fn_type_with_self_type constants.%AA.type.b97, %A.facet [symbolic = %.loc25_4.2 (constants.%.860)] +// CHECK:STDOUT: %impl.elem0.loc25_4.2: @G.%.loc25_4.2 (%.860) = impl_witness_access %T.as_wit.iface1.loc25_4.2, element0 [symbolic = %impl.elem0.loc25_4.2 (constants.%impl.elem0.656)] +// CHECK:STDOUT: %specific_fn.loc25_4.2: = specific_function %impl.elem0.loc25_4.2, @AA.1(%A.facet) [symbolic = %specific_fn.loc25_4.2 (constants.%specific_fn.74e)] +// CHECK:STDOUT: %T.as_wit.iface2.loc26_4.2: = facet_access_witness %T.loc24_6.2, element2 [symbolic = %T.as_wit.iface2.loc26_4.2 (constants.%T.as_wit.iface2)] +// CHECK:STDOUT: %B.facet: %B.type = facet_value %T.as_type.loc24_28.2, (%T.as_wit.iface2.loc26_4.2) [symbolic = %B.facet (constants.%B.facet.abf)] +// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type constants.%BB.type.64d, %B.facet [symbolic = %.loc26_4.2 (constants.%.a5b)] +// CHECK:STDOUT: %impl.elem0.loc26_4.2: @G.%.loc26_4.2 (%.a5b) = impl_witness_access %T.as_wit.iface2.loc26_4.2, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.097)] +// CHECK:STDOUT: %specific_fn.loc26_4.2: = specific_function %impl.elem0.loc26_4.2, @BB.1(%B.facet) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.9fa)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc24_6.1: %facet_type.242](%t.param_patt: @G.%T.as_type.loc24_28.2 (%T.as_type)) { // CHECK:STDOUT: !entry: @@ -764,42 +752,42 @@ fn F() { // CHECK:STDOUT: %AA.ref.loc25: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.f33] // CHECK:STDOUT: %T.as_type.loc25: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc25_4.1: type = converted constants.%T.2df, %T.as_type.loc25 [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc25_4.1: = facet_access_witness constants.%T.2df [symbolic = %T.as_wit.loc25_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc25_4.1: @G.%.loc25_4.2 (%.124) = impl_witness_access %T.as_wit.loc25_4.1, element0 [symbolic = %impl.elem0.loc25_4.2 (constants.%impl.elem0.2b1)] -// CHECK:STDOUT: %specific_fn.loc25_4.1: = specific_function %impl.elem0.loc25_4.1, @AA.1(constants.%A.facet.d6d) [symbolic = %specific_fn.loc25_4.2 (constants.%specific_fn.80f)] +// CHECK:STDOUT: %T.as_wit.iface1.loc25_4.1: = facet_access_witness constants.%T.2df, element1 [symbolic = %T.as_wit.iface1.loc25_4.2 (constants.%T.as_wit.iface1)] +// CHECK:STDOUT: %impl.elem0.loc25_4.1: @G.%.loc25_4.2 (%.860) = impl_witness_access %T.as_wit.iface1.loc25_4.1, element0 [symbolic = %impl.elem0.loc25_4.2 (constants.%impl.elem0.656)] +// CHECK:STDOUT: %specific_fn.loc25_4.1: = specific_function %impl.elem0.loc25_4.1, @AA.1(constants.%A.facet.5b4) [symbolic = %specific_fn.loc25_4.2 (constants.%specific_fn.74e)] // CHECK:STDOUT: %AA.call.loc25: init %empty_tuple.type = call %specific_fn.loc25_4.1() // CHECK:STDOUT: %t.ref.loc26: @G.%T.as_type.loc24_28.2 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %BB.ref.loc26: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.019] // CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type constants.%T.2df [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc26_4.1: type = converted constants.%T.2df, %T.as_type.loc26 [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc26: = facet_access_witness constants.%T.2df [symbolic = %T.as_wit.loc25_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc26_4.1: @G.%.loc26_4.2 (%.e3a) = impl_witness_access %T.as_wit.loc26, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.f5b)] -// CHECK:STDOUT: %specific_fn.loc26_4.1: = specific_function %impl.elem0.loc26_4.1, @BB.1(constants.%B.facet.1c2) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.62f)] +// CHECK:STDOUT: %T.as_wit.iface2.loc26_4.1: = facet_access_witness constants.%T.2df, element2 [symbolic = %T.as_wit.iface2.loc26_4.2 (constants.%T.as_wit.iface2)] +// CHECK:STDOUT: %impl.elem0.loc26_4.1: @G.%.loc26_4.2 (%.a5b) = impl_witness_access %T.as_wit.iface2.loc26_4.1, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.097)] +// CHECK:STDOUT: %specific_fn.loc26_4.1: = specific_function %impl.elem0.loc26_4.1, @BB.1(constants.%B.facet.abf) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.9fa)] // CHECK:STDOUT: %BB.call.loc26: init %empty_tuple.type = call %specific_fn.loc26_4.1() // CHECK:STDOUT: %T.ref.loc28: %facet_type.242 = name_ref T, %T.loc24_6.1 [symbolic = %T.loc24_6.2 (constants.%T.2df)] // CHECK:STDOUT: %AA.ref.loc28: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.f33] // CHECK:STDOUT: %T.as_type.loc28: type = facet_access_type %T.ref.loc28 [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc28: type = converted %T.ref.loc28, %T.as_type.loc28 [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc28: = facet_access_witness %T.ref.loc28 [symbolic = %T.as_wit.loc25_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc28: @G.%.loc25_4.2 (%.124) = impl_witness_access %T.as_wit.loc28, element0 [symbolic = %impl.elem0.loc25_4.2 (constants.%impl.elem0.2b1)] -// CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @AA.1(constants.%A.facet.d6d) [symbolic = %specific_fn.loc25_4.2 (constants.%specific_fn.80f)] +// CHECK:STDOUT: %T.as_wit.iface1.loc28: = facet_access_witness %T.ref.loc28, element1 [symbolic = %T.as_wit.iface1.loc25_4.2 (constants.%T.as_wit.iface1)] +// CHECK:STDOUT: %impl.elem0.loc28: @G.%.loc25_4.2 (%.860) = impl_witness_access %T.as_wit.iface1.loc28, element0 [symbolic = %impl.elem0.loc25_4.2 (constants.%impl.elem0.656)] +// CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @AA.1(constants.%A.facet.5b4) [symbolic = %specific_fn.loc25_4.2 (constants.%specific_fn.74e)] // CHECK:STDOUT: %AA.call.loc28: init %empty_tuple.type = call %specific_fn.loc28() // CHECK:STDOUT: %T.ref.loc29: %facet_type.242 = name_ref T, %T.loc24_6.1 [symbolic = %T.loc24_6.2 (constants.%T.2df)] // CHECK:STDOUT: %BB.ref.loc29: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.019] // CHECK:STDOUT: %T.as_type.loc29: type = facet_access_type %T.ref.loc29 [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc29: type = converted %T.ref.loc29, %T.as_type.loc29 [symbolic = %T.as_type.loc24_28.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc29: = facet_access_witness %T.ref.loc29 [symbolic = %T.as_wit.loc25_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc29: @G.%.loc26_4.2 (%.e3a) = impl_witness_access %T.as_wit.loc29, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.f5b)] -// CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @BB.1(constants.%B.facet.1c2) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.62f)] +// CHECK:STDOUT: %T.as_wit.iface2.loc29: = facet_access_witness %T.ref.loc29, element2 [symbolic = %T.as_wit.iface2.loc26_4.2 (constants.%T.as_wit.iface2)] +// CHECK:STDOUT: %impl.elem0.loc29: @G.%.loc26_4.2 (%.a5b) = impl_witness_access %T.as_wit.iface2.loc29, element0 [symbolic = %impl.elem0.loc26_4.2 (constants.%impl.elem0.097)] +// CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @BB.1(constants.%B.facet.abf) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.9fa)] // CHECK:STDOUT: %BB.call.loc29: init %empty_tuple.type = call %specific_fn.loc29() // CHECK:STDOUT: %T.ref.loc41: %facet_type.242 = name_ref T, %T.loc24_6.1 [symbolic = %T.loc24_6.2 (constants.%T.2df)] // CHECK:STDOUT: %A.ref.loc41: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %AA.ref.loc41: %A.assoc_type = name_ref AA, @A.%assoc0 [concrete = constants.%assoc0.f33] // CHECK:STDOUT: %.loc41: %A.type = converted %T.ref.loc41, [concrete = ] -// CHECK:STDOUT: %T.ref.loc52: %facet_type.242 = name_ref T, %T.loc24_6.1 [symbolic = %T.loc24_6.2 (constants.%T.2df)] -// CHECK:STDOUT: %B.ref.loc52: type = name_ref B, file.%B.decl [concrete = constants.%B.type] -// CHECK:STDOUT: %BB.ref.loc52: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.019] -// CHECK:STDOUT: %.loc52: %B.type = converted %T.ref.loc52, [concrete = ] +// CHECK:STDOUT: %T.ref.loc49: %facet_type.242 = name_ref T, %T.loc24_6.1 [symbolic = %T.loc24_6.2 (constants.%T.2df)] +// CHECK:STDOUT: %B.ref.loc49: type = name_ref B, file.%B.decl [concrete = constants.%B.type] +// CHECK:STDOUT: %BB.ref.loc49: %B.assoc_type = name_ref BB, @B.%assoc0 [concrete = constants.%assoc0.019] +// CHECK:STDOUT: %.loc49: %B.type = converted %T.ref.loc49, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -816,19 +804,19 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] -// CHECK:STDOUT: %.loc67_6.1: %empty_struct_type = struct_literal () +// CHECK:STDOUT: %.loc53_6.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc67_6.2: ref %C = temporary_storage -// CHECK:STDOUT: %.loc67_6.3: init %C = class_init (), %.loc67_6.2 [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc67_6.4: ref %C = temporary %.loc67_6.2, %.loc67_6.3 -// CHECK:STDOUT: %.loc67_8.1: ref %C = converted %.loc67_6.1, %.loc67_6.4 -// CHECK:STDOUT: %facet_value.loc67_12.1: %facet_type.242 = facet_value constants.%C, constants.%impl_witness.1bc [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc67_12.1: %facet_type.242 = converted constants.%C, %facet_value.loc67_12.1 [concrete = constants.%facet_value] -// CHECK:STDOUT: %facet_value.loc67_12.2: %facet_type.242 = facet_value constants.%C, constants.%impl_witness.1bc [concrete = constants.%facet_value] -// CHECK:STDOUT: %.loc67_12.2: %facet_type.242 = converted constants.%C, %facet_value.loc67_12.2 [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc53_6.2: ref %C = temporary_storage +// CHECK:STDOUT: %.loc53_6.3: init %C = class_init (), %.loc53_6.2 [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc53_6.4: ref %C = temporary %.loc53_6.2, %.loc53_6.3 +// CHECK:STDOUT: %.loc53_8.1: ref %C = converted %.loc53_6.1, %.loc53_6.4 +// CHECK:STDOUT: %facet_value.loc53_12.1: %facet_type.242 = facet_value constants.%C, (constants.%impl_witness.1bc, constants.%impl_witness.97a, constants.%impl_witness.fe4) [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc53_12.1: %facet_type.242 = converted constants.%C, %facet_value.loc53_12.1 [concrete = constants.%facet_value] +// CHECK:STDOUT: %facet_value.loc53_12.2: %facet_type.242 = facet_value constants.%C, (constants.%impl_witness.1bc, constants.%impl_witness.97a, constants.%impl_witness.fe4) [concrete = constants.%facet_value] +// CHECK:STDOUT: %.loc53_12.2: %facet_type.242 = converted constants.%C, %facet_value.loc53_12.2 [concrete = constants.%facet_value] // CHECK:STDOUT: %G.specific_fn: = specific_function %G.ref, @G(constants.%facet_value) [concrete = constants.%G.specific_fn] -// CHECK:STDOUT: %.loc67_8.2: %C = bind_value %.loc67_8.1 -// CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn(%.loc67_8.2) +// CHECK:STDOUT: %.loc53_8.2: %C = bind_value %.loc53_8.1 +// CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn(%.loc53_8.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -836,9 +824,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @BB.1(constants.%Self.783) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @AA.1(constants.%A.facet.afe) {} +// CHECK:STDOUT: specific @AA.1(constants.%A.facet.213) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @BB.1(constants.%B.facet.3a2) {} +// CHECK:STDOUT: specific @BB.1(constants.%B.facet.f74) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Op.1(constants.%Self.25f) { // CHECK:STDOUT: %Self => constants.%Self.25f @@ -880,9 +868,9 @@ fn F() { // CHECK:STDOUT: %T.as_type.loc24_28.2 => constants.%T.as_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @AA.1(constants.%A.facet.d6d) {} +// CHECK:STDOUT: specific @AA.1(constants.%A.facet.5b4) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @BB.1(constants.%B.facet.1c2) {} +// CHECK:STDOUT: specific @BB.1(constants.%B.facet.abf) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { // CHECK:STDOUT: %Dest => constants.%Dest @@ -937,14 +925,15 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.357 -// CHECK:STDOUT: %T.as_wit.loc25_4.2 => constants.%impl_witness.1bc -// CHECK:STDOUT: %A.facet => constants.%A.facet.beb -// CHECK:STDOUT: %.loc25_4.2 => constants.%.778 -// CHECK:STDOUT: %impl.elem0.loc25_4.2 => -// CHECK:STDOUT: %specific_fn.loc25_4.2 => -// CHECK:STDOUT: %B.facet => constants.%B.facet.5e0 -// CHECK:STDOUT: %.loc26_4.2 => constants.%.555 -// CHECK:STDOUT: %impl.elem0.loc26_4.2 => -// CHECK:STDOUT: %specific_fn.loc26_4.2 => +// CHECK:STDOUT: %T.as_wit.iface1.loc25_4.2 => constants.%impl_witness.97a +// CHECK:STDOUT: %A.facet => constants.%A.facet.213 +// CHECK:STDOUT: %.loc25_4.2 => constants.%.4b2 +// CHECK:STDOUT: %impl.elem0.loc25_4.2 => constants.%AA.95d +// CHECK:STDOUT: %specific_fn.loc25_4.2 => constants.%AA.specific_fn +// CHECK:STDOUT: %T.as_wit.iface2.loc26_4.2 => constants.%impl_witness.fe4 +// CHECK:STDOUT: %B.facet => constants.%B.facet.f74 +// CHECK:STDOUT: %.loc26_4.2 => constants.%.2b4 +// CHECK:STDOUT: %impl.elem0.loc26_4.2 => constants.%BB.fe8 +// CHECK:STDOUT: %specific_fn.loc26_4.2 => constants.%BB.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/builtin/call.carbon b/toolchain/check/testdata/function/builtin/call.carbon index 0c5c2dcdcf0f..7420da611910 100644 --- a/toolchain/check/testdata/function/builtin/call.carbon +++ b/toolchain/check/testdata/function/builtin/call.carbon @@ -32,8 +32,8 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f7f: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.f7f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2b8: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.2b8 [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn.b6f [concrete] @@ -45,8 +45,8 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e25: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.e25 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ffe: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.ffe [concrete] // CHECK:STDOUT: %Convert.bound.2d6: = bound_method %int_3.822, %Convert.960 [concrete] // CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.c6f: = bound_method %int_3.822, %Convert.specific_fn.8a8 [concrete] @@ -109,14 +109,14 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %Add.ref: %Add.type.b1f = name_ref Add, %Add.decl [concrete = constants.%Add] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc13_25: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_25: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_25.1: = bound_method %int_1, %impl.elem0.loc13_25 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc13_25: = specific_function %impl.elem0.loc13_25, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc13_25.2: = bound_method %int_1, %specific_fn.loc13_25 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc13_25: init %i32 = call %bound_method.loc13_25.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_25.1: %i32 = value_of_initializer %int.convert_checked.loc13_25 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc13_25.2: %i32 = converted %int_1, %.loc13_25.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc13_28: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_28: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_28.1: = bound_method %int_2, %impl.elem0.loc13_28 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc13_28: = specific_function %impl.elem0.loc13_28, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc13_28.2: = bound_method %int_2, %specific_fn.loc13_28 [concrete = constants.%bound_method.b92] @@ -124,7 +124,7 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %.loc13_28.1: %i32 = value_of_initializer %int.convert_checked.loc13_28 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc13_28.2: %i32 = converted %int_2, %.loc13_28.1 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %int.sadd: init %i32 = call %Add.ref(%.loc13_25.2, %.loc13_28.2) [concrete = constants.%int_3.822] -// CHECK:STDOUT: %impl.elem0.loc13_29: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0.loc13_29: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc13_29.1: = bound_method %int.sadd, %impl.elem0.loc13_29 [concrete = constants.%Convert.bound.2d6] // CHECK:STDOUT: %specific_fn.loc13_29: = specific_function %impl.elem0.loc13_29, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc13_29.2: = bound_method %int.sadd, %specific_fn.loc13_29 [concrete = constants.%bound_method.c6f] diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index 62202d21ac62..a9b65995b578 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -33,7 +33,7 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %impl_witness.da7: = impl_witness (@impl.a9a.%F.decl) [concrete] // CHECK:STDOUT: %F.type.066: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.9ec: %F.type.066 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, %impl_witness.da7 [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, (%impl_witness.da7) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %As.type.fd4: type = facet_type <@As, @As(%i32)> [concrete] // CHECK:STDOUT: %Convert.type.99b: type = fn_type @Convert.1, @As(%i32) [concrete] @@ -42,13 +42,13 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound.c1b: = bound_method %int_1.5b8, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn.aad: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method.082: = bound_method %int_1.5b8, %Convert.specific_fn.aad [concrete] // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] -// CHECK:STDOUT: %.c3e: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] +// CHECK:STDOUT: %.62e: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] // CHECK:STDOUT: %F.bound: = bound_method %int_1.5d2, %F.9ec [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -56,8 +56,8 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.3, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f7f: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.f7f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2b8: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.2b8 [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b92: = bound_method %int_2.ecc, %Convert.specific_fn.b6f [concrete] @@ -66,8 +66,8 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.4, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e25: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.e25 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ffe: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.ffe [concrete] // CHECK:STDOUT: %Convert.bound.2d6: = bound_method %int_3.822, %Convert.960 [concrete] // CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.4(%int_32) [concrete] // CHECK:STDOUT: %bound_method.c6f: = bound_method %int_3.822, %Convert.specific_fn.8a8 [concrete] @@ -110,7 +110,7 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc19_27: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc19_27: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc19_24: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0.loc19_24: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc19_24.1: = bound_method %int_1, %impl.elem0.loc19_24 [concrete = constants.%Convert.bound.c1b] // CHECK:STDOUT: %specific_fn.loc19_24: = specific_function %impl.elem0.loc19_24, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn.aad] // CHECK:STDOUT: %bound_method.loc19_24.2: = bound_method %int_1, %specific_fn.loc19_24 [concrete = constants.%bound_method.082] @@ -119,10 +119,10 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %.loc19_24.2: %i32 = converted %int_1, %.loc19_24.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %I.ref: type = name_ref I, %I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.%assoc0 [concrete = constants.%assoc0.a5e] -// CHECK:STDOUT: %impl.elem0.loc19_31: %.c3e = impl_witness_access constants.%impl_witness.da7, element0 [concrete = constants.%F.9ec] +// CHECK:STDOUT: %impl.elem0.loc19_31: %.62e = impl_witness_access constants.%impl_witness.da7, element0 [concrete = constants.%F.9ec] // CHECK:STDOUT: %bound_method.loc19_31: = bound_method %.loc19_24.2, %impl.elem0.loc19_31 [concrete = constants.%F.bound] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc19_38: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc19_38: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_38.1: = bound_method %int_2, %impl.elem0.loc19_38 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc19_38: = specific_function %impl.elem0.loc19_38, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc19_38.2: = bound_method %int_2, %specific_fn.loc19_38 [concrete = constants.%bound_method.b92] @@ -130,7 +130,7 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %.loc19_38.1: %i32 = value_of_initializer %int.convert_checked.loc19_38 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc19_38.2: %i32 = converted %int_2, %.loc19_38.1 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %int.sadd: init %i32 = call %bound_method.loc19_31(%.loc19_24.2, %.loc19_38.2) [concrete = constants.%int_3.822] -// CHECK:STDOUT: %impl.elem0.loc19_39: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0.loc19_39: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc19_39.1: = bound_method %int.sadd, %impl.elem0.loc19_39 [concrete = constants.%Convert.bound.2d6] // CHECK:STDOUT: %specific_fn.loc19_39: = specific_function %impl.elem0.loc19_39, @Convert.4(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc19_39.2: = bound_method %int.sadd, %specific_fn.loc19_39 [concrete = constants.%bound_method.c6f] diff --git a/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon index 8c680f06e405..97f773a3187f 100644 --- a/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon @@ -88,7 +88,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %impl_witness.8b6: = impl_witness (@impl.c45.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.c2a: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.4e3: %Op.type.c2a = struct_value () [concrete] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32.builtin, %impl_witness.8b6 [concrete] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32.builtin, (%impl_witness.8b6) [concrete] // CHECK:STDOUT: %As.type.a09: type = facet_type <@As, @As(%i32.builtin)> [concrete] // CHECK:STDOUT: %Convert.type.c0d: type = fn_type @Convert.1, @As(%i32.builtin) [concrete] // CHECK:STDOUT: %Convert.713: %Convert.type.c0d = struct_value () [concrete] @@ -97,7 +97,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %impl_witness.213: = impl_witness (@impl.028.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.fc9: type = fn_type @Convert.3 [concrete] // CHECK:STDOUT: %Convert.33c: %Convert.type.fc9 = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.a09 = facet_value Core.IntLiteral, %impl_witness.213 [concrete] +// CHECK:STDOUT: %As.facet: %As.type.a09 = facet_value Core.IntLiteral, (%impl_witness.213) [concrete] // CHECK:STDOUT: %ImplicitAs.type.11a: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [concrete] // CHECK:STDOUT: %Convert.type.752: type = fn_type @Convert.2, @ImplicitAs(%i32.builtin) [concrete] // CHECK:STDOUT: %Convert.fcc: %Convert.type.752 = struct_value () [concrete] @@ -106,7 +106,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %impl_witness.48c: = impl_witness (@impl.e13.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.c2a: type = fn_type @Convert.4 [concrete] // CHECK:STDOUT: %Convert.40d: %Convert.type.c2a = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1ff: %ImplicitAs.type.11a = facet_value Core.IntLiteral, %impl_witness.48c [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.224: %ImplicitAs.type.11a = facet_value Core.IntLiteral, (%impl_witness.48c) [concrete] // CHECK:STDOUT: %ImplicitAs.type.9fc: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %Convert.type.60e: type = fn_type @Convert.2, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %Convert.c73: %Convert.type.60e = struct_value () [concrete] @@ -115,7 +115,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %impl_witness.caf: = impl_witness (@impl.3df.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.295: type = fn_type @Convert.5 [concrete] // CHECK:STDOUT: %Convert.2bf: %Convert.type.295 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.72d: %ImplicitAs.type.9fc = facet_value %i32.builtin, %impl_witness.caf [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b1b: %ImplicitAs.type.9fc = facet_value %i32.builtin, (%impl_witness.caf) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -539,10 +539,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.7cc // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.2(constants.%i32.builtin, constants.%ImplicitAs.facet.1ff) { +// CHECK:STDOUT: specific @Convert.2(constants.%i32.builtin, constants.%ImplicitAs.facet.224) { // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.11a -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.1ff +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.224 // CHECK:STDOUT: %Self.as_type.loc16_20.1 => Core.IntLiteral // CHECK:STDOUT: } // CHECK:STDOUT: @@ -559,10 +559,10 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %assoc0.loc16_32.2 => constants.%assoc0.80e // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.2(Core.IntLiteral, constants.%ImplicitAs.facet.72d) { +// CHECK:STDOUT: specific @Convert.2(Core.IntLiteral, constants.%ImplicitAs.facet.b1b) { // CHECK:STDOUT: %T => Core.IntLiteral // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fc -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.72d +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.b1b // CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%i32.builtin // CHECK:STDOUT: } // CHECK:STDOUT: @@ -609,8 +609,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.assoc_type.29f: type = assoc_entity_type %ImplicitAs.type.2fd [concrete] // CHECK:STDOUT: %assoc0.ed3: %ImplicitAs.assoc_type.29f = assoc_entity element0, imports.%Core.import_ref.1c752f.2 [concrete] // CHECK:STDOUT: %impl_witness.d9b: = impl_witness (imports.%Core.import_ref.73a) [concrete] -// CHECK:STDOUT: %As.facet: %As.type.a6d = facet_value Core.IntLiteral, %impl_witness.d9b [concrete] -// CHECK:STDOUT: %.dc4: type = fn_type_with_self_type %Convert.type.378, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.a6d = facet_value Core.IntLiteral, (%impl_witness.d9b) [concrete] +// CHECK:STDOUT: %.425: type = fn_type_with_self_type %Convert.type.378, %As.facet [concrete] // CHECK:STDOUT: %Convert.type.953: type = fn_type @Convert.3 [concrete] // CHECK:STDOUT: %Convert.5bc: %Convert.type.953 = struct_value () [concrete] // CHECK:STDOUT: %Convert.bound.b34: = bound_method %int_1.5b8, %Convert.5bc [concrete] @@ -624,16 +624,16 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Op.3eb: %Op.type.545 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type.da9: type = facet_access_type %Self.a99 [symbolic] // CHECK:STDOUT: %impl_witness.bd0: = impl_witness (imports.%Core.import_ref.db4) [concrete] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32.builtin, %impl_witness.bd0 [concrete] -// CHECK:STDOUT: %.7c2: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32.builtin, (%impl_witness.bd0) [concrete] +// CHECK:STDOUT: %.6d9: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] // CHECK:STDOUT: %Op.type.240: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.0e2: %Op.type.240 = struct_value () [concrete] // CHECK:STDOUT: %Op.bound.393: = bound_method %int_1.f38, %Op.0e2 [concrete] // CHECK:STDOUT: %int_3.a0f: %i32.builtin = int_value 3 [concrete] // CHECK:STDOUT: %assoc0.43db8b.2: %ImplicitAs.assoc_type.837 = assoc_entity element0, imports.%Core.import_ref.207961.2 [symbolic] // CHECK:STDOUT: %impl_witness.8f3: = impl_witness (imports.%Core.import_ref.4f9) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.6ef: %ImplicitAs.type.2fd = facet_value %i32.builtin, %impl_witness.8f3 [concrete] -// CHECK:STDOUT: %.38f: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.6ef [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.4e9: %ImplicitAs.type.2fd = facet_value %i32.builtin, (%impl_witness.8f3) [concrete] +// CHECK:STDOUT: %.89c: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.4e9 [concrete] // CHECK:STDOUT: %Convert.type.0e4: type = fn_type @Convert.4 [concrete] // CHECK:STDOUT: %Convert.b32: %Convert.type.0e4 = struct_value () [concrete] // CHECK:STDOUT: %Convert.bound.65a: = bound_method %int_3.a0f, %Convert.b32 [concrete] @@ -648,8 +648,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, %i32.builtin) [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %impl_witness.39c: = impl_witness (imports.%Core.import_ref.f35) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.085: %ImplicitAs.type.61e = facet_value Core.IntLiteral, %impl_witness.39c [concrete] -// CHECK:STDOUT: %.624: type = fn_type_with_self_type %Convert.type.059, %ImplicitAs.facet.085 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.673: %ImplicitAs.type.61e = facet_value Core.IntLiteral, (%impl_witness.39c) [concrete] +// CHECK:STDOUT: %.5e0: type = fn_type_with_self_type %Convert.type.059, %ImplicitAs.facet.673 [concrete] // CHECK:STDOUT: %Convert.type.49f: type = fn_type @Convert.5 [concrete] // CHECK:STDOUT: %Convert.cb5: %Convert.type.49f = struct_value () [concrete] // CHECK:STDOUT: %Convert.bound.b6b: = bound_method %int_3.1ba, %Convert.cb5 [concrete] @@ -716,7 +716,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed.loc4_27: init type = call constants.%Int(%int_32.loc4_27) [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_27.1: type = value_of_initializer %int.make_type_signed.loc4_27 [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_27.2: type = converted %int.make_type_signed.loc4_27, %.loc4_27.1 [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_24: %.dc4 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] +// CHECK:STDOUT: %impl.elem0.loc4_24: %.425 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] // CHECK:STDOUT: %bound_method.loc4_24: = bound_method %int_1, %impl.elem0.loc4_24 [concrete = constants.%Convert.bound.b34] // CHECK:STDOUT: %int.convert_checked.loc4_24: init %i32.builtin = call %bound_method.loc4_24(%int_1) [concrete = constants.%int_1.f38] // CHECK:STDOUT: %.loc4_24.1: %i32.builtin = value_of_initializer %int.convert_checked.loc4_24 [concrete = constants.%int_1.f38] @@ -726,17 +726,17 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed.loc4_40: init type = call constants.%Int(%int_32.loc4_40) [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_40.1: type = value_of_initializer %int.make_type_signed.loc4_40 [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_40.2: type = converted %int.make_type_signed.loc4_40, %.loc4_40.1 [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_37: %.dc4 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] +// CHECK:STDOUT: %impl.elem0.loc4_37: %.425 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] // CHECK:STDOUT: %bound_method.loc4_37: = bound_method %int_2, %impl.elem0.loc4_37 [concrete = constants.%Convert.bound.324] // CHECK:STDOUT: %int.convert_checked.loc4_37: init %i32.builtin = call %bound_method.loc4_37(%int_2) [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc4_37.1: %i32.builtin = value_of_initializer %int.convert_checked.loc4_37 [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc4_37.2: %i32.builtin = converted %int_2, %.loc4_37.1 [concrete = constants.%int_2.5a1] -// CHECK:STDOUT: %impl.elem0.loc4_32.1: %.7c2 = impl_witness_access constants.%impl_witness.bd0, element0 [concrete = constants.%Op.0e2] +// CHECK:STDOUT: %impl.elem0.loc4_32.1: %.6d9 = impl_witness_access constants.%impl_witness.bd0, element0 [concrete = constants.%Op.0e2] // CHECK:STDOUT: %bound_method.loc4_32.1: = bound_method %.loc4_24.2, %impl.elem0.loc4_32.1 [concrete = constants.%Op.bound.393] // CHECK:STDOUT: %int.sadd: init %i32.builtin = call %bound_method.loc4_32.1(%.loc4_24.2, %.loc4_37.2) [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_16.1: type = value_of_initializer %int.make_type_signed.loc4_16 [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_16.2: type = converted %int.make_type_signed.loc4_16, %.loc4_16.1 [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_32.2: %.38f = impl_witness_access constants.%impl_witness.8f3, element0 [concrete = constants.%Convert.b32] +// CHECK:STDOUT: %impl.elem0.loc4_32.2: %.89c = impl_witness_access constants.%impl_witness.8f3, element0 [concrete = constants.%Convert.b32] // CHECK:STDOUT: %bound_method.loc4_32.2: = bound_method %int.sadd, %impl.elem0.loc4_32.2 [concrete = constants.%Convert.bound.65a] // CHECK:STDOUT: %.loc4_32.1: %i32.builtin = value_of_initializer %int.sadd [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_32.2: %i32.builtin = converted %int.sadd, %.loc4_32.1 [concrete = constants.%int_3.a0f] @@ -859,7 +859,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed.loc4_61: init type = call constants.%Int(%int_32.loc4_61) [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_61.1: type = value_of_initializer %int.make_type_signed.loc4_61 [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_61.2: type = converted %int.make_type_signed.loc4_61, %.loc4_61.1 [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_58: %.dc4 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] +// CHECK:STDOUT: %impl.elem0.loc4_58: %.425 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] // CHECK:STDOUT: %bound_method.loc4_58: = bound_method %int_3.loc4_56, %impl.elem0.loc4_58 [concrete = constants.%Convert.bound.94d] // CHECK:STDOUT: %int.convert_checked.loc4_58: init %i32.builtin = call %bound_method.loc4_58(%int_3.loc4_56) [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_58.1: %i32.builtin = value_of_initializer %int.convert_checked.loc4_58 [concrete = constants.%int_3.a0f] @@ -869,23 +869,23 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %int.make_type_signed.loc4_74: init type = call constants.%Int(%int_32.loc4_74) [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_74.1: type = value_of_initializer %int.make_type_signed.loc4_74 [concrete = constants.%i32.builtin] // CHECK:STDOUT: %.loc4_74.2: type = converted %int.make_type_signed.loc4_74, %.loc4_74.1 [concrete = constants.%i32.builtin] -// CHECK:STDOUT: %impl.elem0.loc4_71: %.dc4 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] +// CHECK:STDOUT: %impl.elem0.loc4_71: %.425 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%Convert.5bc] // CHECK:STDOUT: %bound_method.loc4_71: = bound_method %int_4.loc4_69, %impl.elem0.loc4_71 [concrete = constants.%Convert.bound.8fc] // CHECK:STDOUT: %int.convert_checked.loc4_71: init %i32.builtin = call %bound_method.loc4_71(%int_4.loc4_69) [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_71.1: %i32.builtin = value_of_initializer %int.convert_checked.loc4_71 [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_71.2: %i32.builtin = converted %int_4.loc4_69, %.loc4_71.1 [concrete = constants.%int_4.4f1] -// CHECK:STDOUT: %impl.elem0.loc4_66: %.7c2 = impl_witness_access constants.%impl_witness.bd0, element0 [concrete = constants.%Op.0e2] +// CHECK:STDOUT: %impl.elem0.loc4_66: %.6d9 = impl_witness_access constants.%impl_witness.bd0, element0 [concrete = constants.%Op.0e2] // CHECK:STDOUT: %bound_method.loc4_66: = bound_method %.loc4_58.2, %impl.elem0.loc4_66 [concrete = constants.%Op.bound.423] // CHECK:STDOUT: %int.sadd: init %i32.builtin = call %bound_method.loc4_66(%.loc4_58.2, %.loc4_71.2) [concrete = constants.%int_7] // CHECK:STDOUT: %.loc4_78.1: %tuple.type = tuple_literal (%int_3.loc4_49, %int_4.loc4_52, %int.sadd) -// CHECK:STDOUT: %impl.elem0.loc4_78.1: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc4_78.1: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc4_78.1: = bound_method %int_3.loc4_49, %impl.elem0.loc4_78.1 [concrete = constants.%Convert.bound.b6b] // CHECK:STDOUT: %int.convert_checked.loc4_78.1: init %i32.builtin = call %bound_method.loc4_78.1(%int_3.loc4_49) [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc4_78.2: init %i32.builtin = converted %int_3.loc4_49, %int.convert_checked.loc4_78.1 [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc4_78.3: ref %i32.builtin = array_index file.%arr.var, %int_0 // CHECK:STDOUT: %.loc4_78.4: init %i32.builtin = initialize_from %.loc4_78.2 to %.loc4_78.3 [concrete = constants.%int_3.a0f] -// CHECK:STDOUT: %impl.elem0.loc4_78.2: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc4_78.2: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc4_78.2: = bound_method %int_4.loc4_52, %impl.elem0.loc4_78.2 [concrete = constants.%Convert.bound.626] // CHECK:STDOUT: %int.convert_checked.loc4_78.2: init %i32.builtin = call %bound_method.loc4_78.2(%int_4.loc4_52) [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc4_78.5: init %i32.builtin = converted %int_4.loc4_52, %int.convert_checked.loc4_78.2 [concrete = constants.%int_4.4f1] diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index 9d17d517adc2..08884c825a80 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -31,8 +31,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -90,7 +90,7 @@ fn Main() { // CHECK:STDOUT: %b.var: ref %i32 = var b // CHECK:STDOUT: %Echo.ref: %Echo.type = name_ref Echo, file.%Echo.decl [concrete = constants.%Echo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_21.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_21.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index 0df85f95ee7a..a1702776c05b 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -35,8 +35,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -101,7 +101,7 @@ fn Main() { // CHECK:STDOUT: %x.var: ref %tuple.type.a1c = var x // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_22.1: %tuple.type.985 = tuple_literal (%int_1) -// CHECK:STDOUT: %impl.elem0.loc14: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_22.1: = bound_method %int_1, %impl.elem0.loc14 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_22.2: = bound_method %int_1, %specific_fn.loc14 [concrete = constants.%bound_method.9a1] @@ -123,7 +123,7 @@ fn Main() { // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %x.ref, element0 // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc16_8: %i32 = bind_value %tuple.elem0 -// CHECK:STDOUT: %impl.elem0.loc16: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_12.1: = bound_method %int_6, %impl.elem0.loc16 [concrete = constants.%Convert.bound.ce9] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_12.2: = bound_method %int_6, %specific_fn.loc16 [concrete = constants.%bound_method.efa] diff --git a/toolchain/check/testdata/function/call/params_one.carbon b/toolchain/check/testdata/function/call/params_one.carbon index d62bcb19d8c6..645f5e8858c1 100644 --- a/toolchain/check/testdata/function/call/params_one.carbon +++ b/toolchain/check/testdata/function/call/params_one.carbon @@ -30,8 +30,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -77,7 +77,7 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_7.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_7.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/function/call/params_one_comma.carbon b/toolchain/check/testdata/function/call/params_one_comma.carbon index dad189c417e2..759e496eb977 100644 --- a/toolchain/check/testdata/function/call/params_one_comma.carbon +++ b/toolchain/check/testdata/function/call/params_one_comma.carbon @@ -31,8 +31,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -78,7 +78,7 @@ fn Main() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Foo.ref.loc14: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc14: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_7.1: = bound_method %int_1.loc14, %impl.elem0.loc14 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_7.2: = bound_method %int_1.loc14, %specific_fn.loc14 [concrete = constants.%bound_method] @@ -88,7 +88,7 @@ fn Main() { // CHECK:STDOUT: %Foo.call.loc14: init %empty_tuple.type = call %Foo.ref.loc14(%.loc14_7.2) // CHECK:STDOUT: %Foo.ref.loc15: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc15: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_7.1: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_7.2: = bound_method %int_1.loc15, %specific_fn.loc15 [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/function/call/params_two.carbon b/toolchain/check/testdata/function/call/params_two.carbon index fc9e60362772..01bcbb35d69f 100644 --- a/toolchain/check/testdata/function/call/params_two.carbon +++ b/toolchain/check/testdata/function/call/params_two.carbon @@ -31,8 +31,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -90,14 +90,14 @@ fn Main() { // CHECK:STDOUT: %Foo.ref: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc14_7: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_7: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_7.1: = bound_method %int_1, %impl.elem0.loc14_7 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_7: = specific_function %impl.elem0.loc14_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_7.2: = bound_method %int_1, %specific_fn.loc14_7 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc14_7: init %i32 = call %bound_method.loc14_7.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14_7 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1, %.loc14_7.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_10: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_10: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_10.1: = bound_method %int_2, %impl.elem0.loc14_10 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_10: = specific_function %impl.elem0.loc14_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_10.2: = bound_method %int_2, %specific_fn.loc14_10 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/function/call/params_two_comma.carbon b/toolchain/check/testdata/function/call/params_two_comma.carbon index 95bfa2a16a67..e623f8475b94 100644 --- a/toolchain/check/testdata/function/call/params_two_comma.carbon +++ b/toolchain/check/testdata/function/call/params_two_comma.carbon @@ -32,8 +32,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -91,14 +91,14 @@ fn Main() { // CHECK:STDOUT: %Foo.ref.loc14: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc14: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc14_7: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_7: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_7.1: = bound_method %int_1.loc14, %impl.elem0.loc14_7 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_7: = specific_function %impl.elem0.loc14_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_7.2: = bound_method %int_1.loc14, %specific_fn.loc14_7 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc14_7: init %i32 = call %bound_method.loc14_7.2(%int_1.loc14) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_7.1: %i32 = value_of_initializer %int.convert_checked.loc14_7 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_7.2: %i32 = converted %int_1.loc14, %.loc14_7.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_10: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_10: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_10.1: = bound_method %int_2.loc14, %impl.elem0.loc14_10 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_10: = specific_function %impl.elem0.loc14_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_10.2: = bound_method %int_2.loc14, %specific_fn.loc14_10 [concrete = constants.%bound_method.b92] @@ -109,14 +109,14 @@ fn Main() { // CHECK:STDOUT: %Foo.ref.loc15: %Foo.type = name_ref Foo, file.%Foo.decl [concrete = constants.%Foo] // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc15: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc15_7: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15_7: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_7.1: = bound_method %int_1.loc15, %impl.elem0.loc15_7 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc15_7: = specific_function %impl.elem0.loc15_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_7.2: = bound_method %int_1.loc15, %specific_fn.loc15_7 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc15_7: init %i32 = call %bound_method.loc15_7.2(%int_1.loc15) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc15_7.1: %i32 = value_of_initializer %int.convert_checked.loc15_7 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc15_7.2: %i32 = converted %int_1.loc15, %.loc15_7.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc15_10: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15_10: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_10.1: = bound_method %int_2.loc15, %impl.elem0.loc15_10 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc15_10: = specific_function %impl.elem0.loc15_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_10.2: = bound_method %int_2.loc15, %specific_fn.loc15_10 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon index f4cd1b23055d..cad48ed71420 100644 --- a/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon +++ b/toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon @@ -47,8 +47,8 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -148,7 +148,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); } // CHECK:STDOUT: fn() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_29.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_29.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/function/declaration/import.carbon b/toolchain/check/testdata/function/declaration/import.carbon index d8f0ecc78883..95f95952c255 100644 --- a/toolchain/check/testdata/function/declaration/import.carbon +++ b/toolchain/check/testdata/function/declaration/import.carbon @@ -458,8 +458,8 @@ import library "extern_api"; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -580,7 +580,7 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc7: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_16.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_16.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method] @@ -592,7 +592,7 @@ import library "extern_api"; // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_25.1: %tuple.type.985 = tuple_literal (%int_1.loc8) -// CHECK:STDOUT: %impl.elem0.loc8: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc8: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method] @@ -638,8 +638,8 @@ import library "extern_api"; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -777,7 +777,7 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc53: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc53_16.1: = bound_method %int_1.loc53, %impl.elem0.loc53 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_16.2: = bound_method %int_1.loc53, %specific_fn.loc53 [concrete = constants.%bound_method] @@ -789,7 +789,7 @@ import library "extern_api"; // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) -// CHECK:STDOUT: %impl.elem0.loc54: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc54: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc54_25.1: = bound_method %int_1.loc54, %impl.elem0.loc54 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc54: = specific_function %impl.elem0.loc54, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc54_25.2: = bound_method %int_1.loc54, %specific_fn.loc54 [concrete = constants.%bound_method] @@ -835,8 +835,8 @@ import library "extern_api"; // CHECK:STDOUT: %impl_witness.b97: = impl_witness (imports.%Core.import_ref.a86), @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.ed5: type = fn_type @Convert.2, @impl.c81(%int_32) [concrete] // CHECK:STDOUT: %Convert.16d: %Convert.type.ed5 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, %impl_witness.b97 [concrete] -// CHECK:STDOUT: %.39b: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.9ba = facet_value Core.IntLiteral, (%impl_witness.b97) [concrete] +// CHECK:STDOUT: %.b14: type = fn_type_with_self_type %Convert.type.6da, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.16d [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.16d, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -974,7 +974,7 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc13: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc13: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0.loc13: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc13_16.1: = bound_method %int_1.loc13, %impl.elem0.loc13 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_16.2: = bound_method %int_1.loc13, %specific_fn.loc13 [concrete = constants.%bound_method] @@ -986,7 +986,7 @@ import library "extern_api"; // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_25.1: %tuple.type.985 = tuple_literal (%int_1.loc14) -// CHECK:STDOUT: %impl.elem0.loc14: %.39b = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] +// CHECK:STDOUT: %impl.elem0.loc14: %.b14 = impl_witness_access constants.%impl_witness.b97, element0 [concrete = constants.%Convert.16d] // CHECK:STDOUT: %bound_method.loc14_25.1: = bound_method %int_1.loc14, %impl.elem0.loc14 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_25.2: = bound_method %int_1.loc14, %specific_fn.loc14 [concrete = constants.%bound_method] @@ -1023,8 +1023,8 @@ import library "extern_api"; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -1145,7 +1145,7 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc53: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc53_16.1: = bound_method %int_1.loc53, %impl.elem0.loc53 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_16.2: = bound_method %int_1.loc53, %specific_fn.loc53 [concrete = constants.%bound_method] @@ -1157,7 +1157,7 @@ import library "extern_api"; // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) -// CHECK:STDOUT: %impl.elem0.loc54: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc54: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc54_25.1: = bound_method %int_1.loc54, %impl.elem0.loc54 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc54: = specific_function %impl.elem0.loc54, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc54_25.2: = bound_method %int_1.loc54, %specific_fn.loc54 [concrete = constants.%bound_method] @@ -1194,8 +1194,8 @@ import library "extern_api"; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -1316,7 +1316,7 @@ import library "extern_api"; // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc53: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc53: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc53: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc53_16.1: = bound_method %int_1.loc53, %impl.elem0.loc53 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc53: = specific_function %impl.elem0.loc53, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc53_16.2: = bound_method %int_1.loc53, %specific_fn.loc53 [concrete = constants.%bound_method] @@ -1328,7 +1328,7 @@ import library "extern_api"; // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc54: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc54_25.1: %tuple.type.985 = tuple_literal (%int_1.loc54) -// CHECK:STDOUT: %impl.elem0.loc54: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc54: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc54_25.1: = bound_method %int_1.loc54, %impl.elem0.loc54 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc54: = specific_function %impl.elem0.loc54, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc54_25.2: = bound_method %int_1.loc54, %specific_fn.loc54 [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/function/definition/import.carbon b/toolchain/check/testdata/function/definition/import.carbon index 4766c2b73fca..bde1735dc0b7 100644 --- a/toolchain/check/testdata/function/definition/import.carbon +++ b/toolchain/check/testdata/function/definition/import.carbon @@ -252,8 +252,8 @@ fn D() {} // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -338,7 +338,7 @@ fn D() {} // CHECK:STDOUT: assign file.%a.var, %A.call // CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%Main.B [concrete = constants.%B] // CHECK:STDOUT: %int_1.loc7: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc7: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc7: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_16.1: = bound_method %int_1.loc7, %impl.elem0.loc7 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc7: = specific_function %impl.elem0.loc7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_16.2: = bound_method %int_1.loc7, %specific_fn.loc7 [concrete = constants.%bound_method] @@ -350,7 +350,7 @@ fn D() {} // CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %int_1.loc8: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_25.1: %tuple.type.985 = tuple_literal (%int_1.loc8) -// CHECK:STDOUT: %impl.elem0.loc8: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc8: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_25.1: = bound_method %int_1.loc8, %impl.elem0.loc8 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc8: = specific_function %impl.elem0.loc8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_25.2: = bound_method %int_1.loc8, %specific_fn.loc8 [concrete = constants.%bound_method] 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 806627e7679d..6e759500674c 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 @@ -60,7 +60,7 @@ fn G() { // CHECK:STDOUT: %impl_witness.b42: = impl_witness (@impl.046.%F.decl) [concrete] // CHECK:STDOUT: %F.type.17b: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a56: %F.type.17b = struct_value () [concrete] -// CHECK:STDOUT: %Generic.facet.b0a: %Generic.type.769 = facet_value %ImplsGeneric, %impl_witness.b42 [concrete] +// CHECK:STDOUT: %Generic.facet.8bd: %Generic.type.769 = facet_value %ImplsGeneric, (%impl_witness.b42) [concrete] // CHECK:STDOUT: %Other.type: type = facet_type <@Other> [concrete] // CHECK:STDOUT: %Self.807: %Other.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %G.type.0c6: type = fn_type @G.1 [concrete] @@ -70,7 +70,7 @@ fn G() { // CHECK:STDOUT: %impl_witness.51c: = impl_witness (@impl.728.%G.decl) [concrete] // CHECK:STDOUT: %G.type.58d: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.b67: %G.type.58d = struct_value () [concrete] -// CHECK:STDOUT: %Other.facet: %Other.type = facet_value %ImplsGeneric, %impl_witness.51c [concrete] +// CHECK:STDOUT: %Other.facet: %Other.type = facet_value %ImplsGeneric, (%impl_witness.51c) [concrete] // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %Generic.type.91ccba.2: type = facet_type <@Generic, @Generic(%T)> [symbolic] @@ -84,17 +84,17 @@ fn G() { // CHECK:STDOUT: %assoc0.29ce53.2: %Generic.assoc_type.de973d.2 = assoc_entity element0, @Generic.%F.decl [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.91ccba.2 [symbolic] // CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] -// CHECK:STDOUT: %U.as_wit: = facet_access_witness %U [symbolic] -// CHECK:STDOUT: %Generic.facet.2ea: %Generic.type.91ccba.2 = facet_value %U.as_type, %U.as_wit [symbolic] -// CHECK:STDOUT: %.da8: type = fn_type_with_self_type %F.type.f439a9.2, %Generic.facet.2ea [symbolic] -// CHECK:STDOUT: %impl.elem0: %.da8 = impl_witness_access %U.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.1(%T, %Generic.facet.2ea) [symbolic] +// CHECK:STDOUT: %U.as_wit.iface0: = facet_access_witness %U, element0 [symbolic] +// CHECK:STDOUT: %Generic.facet.0aa: %Generic.type.91ccba.2 = facet_value %U.as_type, (%U.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.10b: type = fn_type_with_self_type %F.type.f439a9.2, %Generic.facet.0aa [symbolic] +// CHECK:STDOUT: %impl.elem0: %.10b = impl_witness_access %U.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.1(%T, %Generic.facet.0aa) [symbolic] // CHECK:STDOUT: %G.type.9f9: type = fn_type @G.3 [concrete] // CHECK:STDOUT: %G.57b: %G.type.9f9 = struct_value () [concrete] -// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet.b0a) [concrete] +// CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod, @CallGenericMethod(%GenericParam, %Generic.facet.8bd) [concrete] // CHECK:STDOUT: %complete_type.997: = complete_type_witness %Generic.type.769 [concrete] -// CHECK:STDOUT: %.db1: type = fn_type_with_self_type %F.type.4cf, %Generic.facet.b0a [concrete] -// CHECK:STDOUT: %F.specific_fn: = specific_function %F.a56, @F.1(%GenericParam, %Generic.facet.b0a) [concrete] +// CHECK:STDOUT: %.1eb: type = fn_type_with_self_type %F.type.4cf, %Generic.facet.8bd [concrete] +// CHECK:STDOUT: %F.specific_fn: = specific_function %F.a56, @F.1(%GenericParam, %Generic.facet.8bd) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -244,11 +244,11 @@ fn G() { // CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @CallGenericMethod.%Generic.type.loc29_45.2 (%Generic.type.91ccba.2) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.de973d.2)] // CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.de973d.2) = assoc_entity element0, @Generic.%F.decl [symbolic = %assoc0 (constants.%assoc0.29ce53.2)] // CHECK:STDOUT: %U.as_type.loc30_4.2: type = facet_access_type %U.loc29_32.2 [symbolic = %U.as_type.loc30_4.2 (constants.%U.as_type)] -// CHECK:STDOUT: %U.as_wit.loc30_4.2: = facet_access_witness %U.loc29_32.2 [symbolic = %U.as_wit.loc30_4.2 (constants.%U.as_wit)] +// CHECK:STDOUT: %U.as_wit.iface0.loc30_4.2: = facet_access_witness %U.loc29_32.2, element0 [symbolic = %U.as_wit.iface0.loc30_4.2 (constants.%U.as_wit.iface0)] // CHECK:STDOUT: %F.type: type = fn_type @F.1, @Generic(%T.loc29_22.2) [symbolic = %F.type (constants.%F.type.f439a9.2)] -// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc29_45.2 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc30_4.2, %U.as_wit.loc30_4.2 [symbolic = %Generic.facet (constants.%Generic.facet.2ea)] -// CHECK:STDOUT: %.loc30_4.3: type = fn_type_with_self_type %F.type, %Generic.facet [symbolic = %.loc30_4.3 (constants.%.da8)] -// CHECK:STDOUT: %impl.elem0.loc30_4.2: @CallGenericMethod.%.loc30_4.3 (%.da8) = impl_witness_access %U.as_wit.loc30_4.2, element0 [symbolic = %impl.elem0.loc30_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Generic.facet: @CallGenericMethod.%Generic.type.loc29_45.2 (%Generic.type.91ccba.2) = facet_value %U.as_type.loc30_4.2, (%U.as_wit.iface0.loc30_4.2) [symbolic = %Generic.facet (constants.%Generic.facet.0aa)] +// CHECK:STDOUT: %.loc30_4.3: type = fn_type_with_self_type %F.type, %Generic.facet [symbolic = %.loc30_4.3 (constants.%.10b)] +// CHECK:STDOUT: %impl.elem0.loc30_4.2: @CallGenericMethod.%.loc30_4.3 (%.10b) = impl_witness_access %U.as_wit.iface0.loc30_4.2, element0 [symbolic = %impl.elem0.loc30_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc30_4.2: = specific_function %impl.elem0.loc30_4.2, @F.1(%T.loc29_22.2, %Generic.facet) [symbolic = %specific_fn.loc30_4.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.loc29_22.1: type, %U.patt.loc29_32.1: @CallGenericMethod.%Generic.type.loc29_45.2 (%Generic.type.91ccba.2)) { @@ -258,9 +258,9 @@ fn G() { // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.de973d.2) = name_ref F, %.loc30_4.1 [symbolic = %assoc0 (constants.%assoc0.29ce53.2)] // CHECK:STDOUT: %U.as_type.loc30_4.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc30_4.2 (constants.%U.as_type)] // CHECK:STDOUT: %.loc30_4.2: type = converted %U.ref, %U.as_type.loc30_4.1 [symbolic = %U.as_type.loc30_4.2 (constants.%U.as_type)] -// CHECK:STDOUT: %U.as_wit.loc30_4.1: = facet_access_witness %U.ref [symbolic = %U.as_wit.loc30_4.2 (constants.%U.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc30_4.1: @CallGenericMethod.%.loc30_4.3 (%.da8) = impl_witness_access %U.as_wit.loc30_4.1, element0 [symbolic = %impl.elem0.loc30_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_fn.loc30_4.1: = specific_function %impl.elem0.loc30_4.1, @F.1(constants.%T, constants.%Generic.facet.2ea) [symbolic = %specific_fn.loc30_4.2 (constants.%specific_fn)] +// CHECK:STDOUT: %U.as_wit.iface0.loc30_4.1: = facet_access_witness %U.ref, element0 [symbolic = %U.as_wit.iface0.loc30_4.2 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc30_4.1: @CallGenericMethod.%.loc30_4.3 (%.10b) = impl_witness_access %U.as_wit.iface0.loc30_4.1, element0 [symbolic = %impl.elem0.loc30_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_fn.loc30_4.1: = specific_function %impl.elem0.loc30_4.1, @F.1(constants.%T, constants.%Generic.facet.0aa) [symbolic = %specific_fn.loc30_4.2 (constants.%specific_fn)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %specific_fn.loc30_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -271,8 +271,8 @@ fn G() { // CHECK:STDOUT: %CallGenericMethod.ref: %CallGenericMethod.type = name_ref CallGenericMethod, file.%CallGenericMethod.decl [concrete = constants.%CallGenericMethod] // CHECK:STDOUT: %GenericParam.ref: type = name_ref GenericParam, file.%GenericParam.decl [concrete = constants.%GenericParam] // CHECK:STDOUT: %ImplsGeneric.ref: type = name_ref ImplsGeneric, file.%ImplsGeneric.decl [concrete = constants.%ImplsGeneric] -// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, constants.%impl_witness.b42 [concrete = constants.%Generic.facet.b0a] -// CHECK:STDOUT: %.loc34: %Generic.type.769 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet.b0a] +// CHECK:STDOUT: %Generic.facet: %Generic.type.769 = facet_value constants.%ImplsGeneric, (constants.%impl_witness.b42) [concrete = constants.%Generic.facet.8bd] +// CHECK:STDOUT: %.loc34: %Generic.type.769 = converted constants.%ImplsGeneric, %Generic.facet [concrete = constants.%Generic.facet.8bd] // CHECK:STDOUT: %CallGenericMethod.specific_fn: = specific_function %CallGenericMethod.ref, @CallGenericMethod(constants.%GenericParam, %.loc34) [concrete = constants.%CallGenericMethod.specific_fn] // CHECK:STDOUT: %CallGenericMethod.call: init %empty_tuple.type = call %CallGenericMethod.specific_fn() // CHECK:STDOUT: return @@ -300,7 +300,7 @@ fn G() { // CHECK:STDOUT: %assoc0.loc12_9.2 => constants.%assoc0.9b7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%GenericParam, constants.%Generic.facet.b0a) {} +// CHECK:STDOUT: specific @F.1(constants.%GenericParam, constants.%Generic.facet.8bd) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G.1(constants.%Self.807) {} // CHECK:STDOUT: @@ -329,7 +329,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Generic(@CallGenericMethod.%T.loc29_22.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Generic.facet.2ea) {} +// CHECK:STDOUT: specific @F.1(constants.%T, constants.%Generic.facet.0aa) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(@CallGenericMethod.%T.loc29_22.2, @CallGenericMethod.%Generic.facet) {} // CHECK:STDOUT: @@ -337,27 +337,27 @@ fn G() { // CHECK:STDOUT: %T.loc29_22.2 => constants.%GenericParam // CHECK:STDOUT: %T.patt.loc29_22.2 => constants.%GenericParam // CHECK:STDOUT: %Generic.type.loc29_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc29_32.2 => constants.%Generic.facet.b0a -// CHECK:STDOUT: %U.patt.loc29_32.2 => constants.%Generic.facet.b0a +// CHECK:STDOUT: %U.loc29_32.2 => constants.%Generic.facet.8bd +// CHECK:STDOUT: %U.patt.loc29_32.2 => constants.%Generic.facet.8bd // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.997 // CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.9f1 // CHECK:STDOUT: %assoc0 => constants.%assoc0.9b7 // CHECK:STDOUT: %U.as_type.loc30_4.2 => constants.%ImplsGeneric -// CHECK:STDOUT: %U.as_wit.loc30_4.2 => constants.%impl_witness.b42 +// CHECK:STDOUT: %U.as_wit.iface0.loc30_4.2 => constants.%impl_witness.b42 // CHECK:STDOUT: %F.type => constants.%F.type.4cf -// CHECK:STDOUT: %Generic.facet => constants.%Generic.facet.b0a -// CHECK:STDOUT: %.loc30_4.3 => constants.%.db1 +// CHECK:STDOUT: %Generic.facet => constants.%Generic.facet.8bd +// CHECK:STDOUT: %.loc30_4.3 => constants.%.1eb // CHECK:STDOUT: %impl.elem0.loc30_4.2 => constants.%F.a56 // CHECK:STDOUT: %specific_fn.loc30_4.2 => constants.%F.specific_fn // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.b0a) { +// CHECK:STDOUT: specific @CallGenericMethod(constants.%GenericParam, constants.%Generic.facet.8bd) { // CHECK:STDOUT: %T.loc29_22.2 => constants.%GenericParam // CHECK:STDOUT: %T.patt.loc29_22.2 => constants.%GenericParam // CHECK:STDOUT: %Generic.type.loc29_45.2 => constants.%Generic.type.769 -// CHECK:STDOUT: %U.loc29_32.2 => constants.%Generic.facet.b0a -// CHECK:STDOUT: %U.patt.loc29_32.2 => constants.%Generic.facet.b0a +// CHECK:STDOUT: %U.loc29_32.2 => constants.%Generic.facet.8bd +// CHECK:STDOUT: %U.patt.loc29_32.2 => constants.%Generic.facet.8bd // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index c581fa544702..41beae4742c2 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -778,8 +778,8 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -844,7 +844,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_19.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) // CHECK:STDOUT: %TupleParam.specific_fn: = specific_function %TupleParam.ref, @TupleParam(Core.IntLiteral) [concrete = constants.%TupleParam.specific_fn] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_19.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_19.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] @@ -896,8 +896,8 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -961,7 +961,7 @@ fn CallImplicitNotDeducible() { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc7_30.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) // CHECK:STDOUT: %StructParam.specific_fn: = specific_function %StructParam.ref, @StructParam(Core.IntLiteral) [concrete = constants.%StructParam.specific_fn] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_30.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_30.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/function/generic/param_in_type.carbon b/toolchain/check/testdata/function/generic/param_in_type.carbon index b507c9c79a2b..3932366eecdb 100644 --- a/toolchain/check/testdata/function/generic/param_in_type.carbon +++ b/toolchain/check/testdata/function/generic/param_in_type.carbon @@ -22,8 +22,8 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %N.51e, %Convert.960 [symbolic] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %N.51e, %Convert.specific_fn [symbolic] @@ -64,7 +64,7 @@ fn F(N:! i32, a: array(i32, N)*); // CHECK:STDOUT: %int_32.loc11_24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc11_24: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %N.ref: %i32 = name_ref N, %N.loc11_6.1 [symbolic = %N.loc11_6.2 (constants.%N.51e)] -// CHECK:STDOUT: %impl.elem0: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc11_29.1: = bound_method %N.ref, %impl.elem0 [symbolic = %Convert.bound (constants.%Convert.bound)] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_29.2: = bound_method %N.ref, %specific_fn [symbolic = %bound_method.loc11_29.3 (constants.%bound_method)] diff --git a/toolchain/check/testdata/function/generic/undefined.carbon b/toolchain/check/testdata/function/generic/undefined.carbon index bd55d34b6f11..3c66f97a911b 100644 --- a/toolchain/check/testdata/function/generic/undefined.carbon +++ b/toolchain/check/testdata/function/generic/undefined.carbon @@ -71,8 +71,8 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -142,7 +142,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc9: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc9: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc9_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -189,8 +189,8 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -275,7 +275,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc7: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc7: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc7_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -319,8 +319,8 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -383,7 +383,7 @@ fn CallUndefined() -> i32 { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc14: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc14: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc14_22.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_22.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/generic/call_basic_depth.carbon b/toolchain/check/testdata/generic/call_basic_depth.carbon index eb2a1c6660aa..f87c2600bf17 100644 --- a/toolchain/check/testdata/generic/call_basic_depth.carbon +++ b/toolchain/check/testdata/generic/call_basic_depth.carbon @@ -72,8 +72,8 @@ fn M() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -264,7 +264,7 @@ fn M() { // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc35_3.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc35_3.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/generic/local.carbon b/toolchain/check/testdata/generic/local.carbon index fa35462d857f..4178f0fb9433 100644 --- a/toolchain/check/testdata/generic/local.carbon +++ b/toolchain/check/testdata/generic/local.carbon @@ -72,8 +72,8 @@ class C(C:! type) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -140,7 +140,7 @@ class C(C:! type) { // CHECK:STDOUT: %v.var: ref %C.d45 = var v // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc8_26.1: %struct_type.x.c96 = struct_literal (%int_1) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc8_26.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc8_26.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/global/simple_init.carbon b/toolchain/check/testdata/global/simple_init.carbon index d17c4e7ef252..3f29d884501e 100644 --- a/toolchain/check/testdata/global/simple_init.carbon +++ b/toolchain/check/testdata/global/simple_init.carbon @@ -20,8 +20,8 @@ var a: i32 = 0; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -58,7 +58,7 @@ var a: i32 = 0; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/global/simple_with_fun.carbon b/toolchain/check/testdata/global/simple_with_fun.carbon index 717c1563710d..b9ecb6cfa7f8 100644 --- a/toolchain/check/testdata/global/simple_with_fun.carbon +++ b/toolchain/check/testdata/global/simple_with_fun.carbon @@ -27,8 +27,8 @@ var a: i32 = test_a(); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -75,7 +75,7 @@ var a: i32 = test_a(); // CHECK:STDOUT: fn @test_a() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon b/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon index 3aefa1c477cd..57d29be6c7e7 100644 --- a/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon +++ b/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon @@ -55,8 +55,8 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -152,7 +152,7 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] @@ -177,7 +177,7 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_13.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_13.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] @@ -196,7 +196,7 @@ fn If3(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc35_13.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc35_13.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] diff --git a/toolchain/check/testdata/if/fail_scope.carbon b/toolchain/check/testdata/if/fail_scope.carbon index d66a09ba844b..c78656661b9d 100644 --- a/toolchain/check/testdata/if/fail_scope.carbon +++ b/toolchain/check/testdata/if/fail_scope.carbon @@ -35,8 +35,8 @@ fn VarScope(b: bool) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -92,7 +92,7 @@ fn VarScope(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/if/unreachable_fallthrough.carbon b/toolchain/check/testdata/if/unreachable_fallthrough.carbon index 301d3b390739..e43892df298f 100644 --- a/toolchain/check/testdata/if/unreachable_fallthrough.carbon +++ b/toolchain/check/testdata/if/unreachable_fallthrough.carbon @@ -32,8 +32,8 @@ fn If(b: bool) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -87,7 +87,7 @@ fn If(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.then: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc13: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_13.1: = bound_method %int_1, %impl.elem0.loc13 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_13.2: = bound_method %int_1, %specific_fn.loc13 [concrete = constants.%bound_method.9a1] @@ -98,7 +98,7 @@ fn If(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc15: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_13.1: = bound_method %int_2, %impl.elem0.loc15 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_13.2: = bound_method %int_2, %specific_fn.loc15 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/if_expr/basic.carbon b/toolchain/check/testdata/if_expr/basic.carbon index 5cf378422996..a50986c8e176 100644 --- a/toolchain/check/testdata/if_expr/basic.carbon +++ b/toolchain/check/testdata/if_expr/basic.carbon @@ -31,8 +31,8 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -101,7 +101,7 @@ fn F(b: bool, n: i32, m: i32) -> i32 { // CHECK:STDOUT: %x.var: ref %array_type = var x // CHECK:STDOUT: %int_0.loc12_27: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc12_29.1: %tuple.type = tuple_literal (%int_0.loc12_27) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_29.1: = bound_method %int_0.loc12_27, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_29.2: = bound_method %int_0.loc12_27, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/if_expr/constant_condition.carbon b/toolchain/check/testdata/if_expr/constant_condition.carbon index 48a382852aad..daad0df44327 100644 --- a/toolchain/check/testdata/if_expr/constant_condition.carbon +++ b/toolchain/check/testdata/if_expr/constant_condition.carbon @@ -44,8 +44,8 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -152,7 +152,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] @@ -165,7 +165,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: fn @B() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] @@ -231,7 +231,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_3.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_3.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] @@ -307,7 +307,7 @@ fn PartiallyConstant(t: type) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc29_3.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc29_3.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] diff --git a/toolchain/check/testdata/if_expr/control_flow.carbon b/toolchain/check/testdata/if_expr/control_flow.carbon index 69d80c19cbf1..3fb8b4076f68 100644 --- a/toolchain/check/testdata/if_expr/control_flow.carbon +++ b/toolchain/check/testdata/if_expr/control_flow.carbon @@ -28,8 +28,8 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -105,7 +105,7 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_25.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_25.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] @@ -118,7 +118,7 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: fn @B() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_25.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/if_expr/nested.carbon b/toolchain/check/testdata/if_expr/nested.carbon index 1c391c85d641..77f8a39f5bce 100644 --- a/toolchain/check/testdata/if_expr/nested.carbon +++ b/toolchain/check/testdata/if_expr/nested.carbon @@ -27,8 +27,8 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -114,7 +114,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc12_25: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc12_25: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc12_25: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_25: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_25.1: = bound_method %int_1, %impl.elem0.loc12_25 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc12_25: = specific_function %impl.elem0.loc12_25, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_25.2: = bound_method %int_1, %specific_fn.loc12_25 [concrete = constants.%bound_method.9a1] @@ -125,7 +125,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc12_20: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc12_32: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_32: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_32.1: = bound_method %int_2, %impl.elem0.loc12_32 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc12_32: = specific_function %impl.elem0.loc12_32, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_32.2: = bound_method %int_2, %specific_fn.loc12_32 [concrete = constants.%bound_method.b92] @@ -146,7 +146,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_32.loc12_49: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc12_49: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc12_49: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_49: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_49.1: = bound_method %int_3, %impl.elem0.loc12_49 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc12_49: = specific_function %impl.elem0.loc12_49, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_49.2: = bound_method %int_3, %specific_fn.loc12_49 [concrete = constants.%bound_method.047] @@ -157,7 +157,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc12_44: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc12_56: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_56: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_56.1: = bound_method %int_4, %impl.elem0.loc12_56 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc12_56: = specific_function %impl.elem0.loc12_56, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_56.2: = bound_method %int_4, %specific_fn.loc12_56 [concrete = constants.%bound_method.1da] diff --git a/toolchain/check/testdata/if_expr/struct.carbon b/toolchain/check/testdata/if_expr/struct.carbon index 07d6a0d413ae..f4a9eb32342e 100644 --- a/toolchain/check/testdata/if_expr/struct.carbon +++ b/toolchain/check/testdata/if_expr/struct.carbon @@ -36,8 +36,8 @@ fn F(cond: bool) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -105,7 +105,7 @@ fn F(cond: bool) { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc14_46.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc14_46.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_46.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_46.1: = bound_method %int_1, %impl.elem0.loc14_46.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_46.1: = specific_function %impl.elem0.loc14_46.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_46.2: = bound_method %int_1, %specific_fn.loc14_46.1 [concrete = constants.%bound_method.9a1] @@ -113,7 +113,7 @@ fn F(cond: bool) { // CHECK:STDOUT: %.loc14_46.2: init %i32 = converted %int_1, %int.convert_checked.loc14_46.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_46.3: ref %i32 = struct_access %a.var, element0 // CHECK:STDOUT: %.loc14_46.4: init %i32 = initialize_from %.loc14_46.2 to %.loc14_46.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_46.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_46.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_46.3: = bound_method %int_2, %impl.elem0.loc14_46.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_46.2: = specific_function %impl.elem0.loc14_46.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_46.4: = bound_method %int_2, %specific_fn.loc14_46.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/impl/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index 081739404156..e7cf71723e31 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -111,21 +111,21 @@ fn CallF() { // 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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet.1f7: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet.d87: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] // CHECK:STDOUT: %require_complete.d0c: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] -// CHECK:STDOUT: %I_where.type.5de: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] +// CHECK:STDOUT: %I_where.type.9d4: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] // CHECK:STDOUT: %impl_witness.a4f: = impl_witness (%empty_struct) [concrete] -// CHECK:STDOUT: %I.facet.27e: %I.type = facet_value %empty_struct_type, %impl_witness.a4f [concrete] +// CHECK:STDOUT: %I.facet.c8a: %I.type = facet_value %empty_struct_type, (%impl_witness.a4f) [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: %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.cad: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] +// CHECK:STDOUT: %I_where.type.b5a: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] // CHECK:STDOUT: %impl_witness.6f4: = impl_witness (%int_0.6a9) [concrete] -// CHECK:STDOUT: %I.facet.401: %I.type = facet_value %i32, %impl_witness.6f4 [concrete] +// CHECK:STDOUT: %I.facet.618: %I.type = facet_value %i32, (%impl_witness.6f4) [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.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] @@ -133,8 +133,8 @@ fn CallF() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -157,7 +157,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} -// CHECK:STDOUT: impl_decl @impl.f17 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.77e [concrete] {} { // CHECK:STDOUT: %.loc8_7.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc8_7.2: type = converted %.loc8_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] @@ -166,17 +166,17 @@ fn CallF() { // CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.a1d] // 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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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.5de] { +// CHECK:STDOUT: %.loc8_14: type = where_expr %.Self [concrete = constants.%I_where.type.9d4] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc8_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc8: = impl_witness (constants.%empty_struct) [concrete = constants.%impl_witness.a4f] -// CHECK:STDOUT: impl_decl @impl.ffd [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.a12 [concrete] {} { // 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: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] @@ -185,15 +185,15 @@ fn CallF() { // CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.a1d] // 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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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.cad] { +// CHECK:STDOUT: %.loc10_15: type = where_expr %.Self [concrete = constants.%I_where.type.b5a] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %int_0 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc10: = impl_witness (constants.%int_0.6a9) [concrete = constants.%impl_witness.6f4] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_15.1: = bound_method constants.%int_0.5c6, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_15.2: = bound_method constants.%int_0.5c6, %specific_fn [concrete = constants.%bound_method] @@ -222,12 +222,12 @@ fn CallF() { // CHECK:STDOUT: assoc_const V:! @V.%Self.as_type (%Self.as_type.b70); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.f17: %.loc8_7.2 as %.loc8_14 { +// CHECK:STDOUT: impl @impl.77e: %.loc8_7.2 as %.loc8_14 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness.loc8 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.ffd: %i32 as %.loc10_15 { +// CHECK:STDOUT: impl @impl.a12: %i32 as %.loc10_15 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness.loc10 // CHECK:STDOUT: } @@ -238,20 +238,20 @@ fn CallF() { // CHECK:STDOUT: %require_complete => constants.%require_complete.9b1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.1f7) { -// CHECK:STDOUT: %Self => constants.%I.facet.1f7 +// CHECK:STDOUT: specific @V(constants.%I.facet.d87) { +// CHECK:STDOUT: %Self => constants.%I.facet.d87 // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %require_complete => constants.%require_complete.d0c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.27e) { -// CHECK:STDOUT: %Self => constants.%I.facet.27e +// CHECK:STDOUT: specific @V(constants.%I.facet.c8a) { +// CHECK:STDOUT: %Self => constants.%I.facet.c8a // CHECK:STDOUT: %Self.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.401) { -// CHECK:STDOUT: %Self => constants.%I.facet.401 +// CHECK:STDOUT: specific @V(constants.%I.facet.618) { +// CHECK:STDOUT: %Self => constants.%I.facet.618 // CHECK:STDOUT: %Self.as_type => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: } @@ -268,14 +268,14 @@ fn CallF() { // 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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet.1f7: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet.d87: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] // CHECK:STDOUT: %require_complete.d0c: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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: %impl_witness: = impl_witness () [concrete] -// CHECK:STDOUT: %I.facet.c20: %I.type = facet_value %empty_struct_type, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet.7af: %I.type = facet_value %empty_struct_type, (%impl_witness) [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -303,8 +303,8 @@ fn CallF() { // CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.a1d] // 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: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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_rewrite %impl.elem0, %int_0 @@ -345,14 +345,14 @@ fn CallF() { // CHECK:STDOUT: %require_complete => constants.%require_complete.9b1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.1f7) { -// CHECK:STDOUT: %Self => constants.%I.facet.1f7 +// CHECK:STDOUT: specific @V(constants.%I.facet.d87) { +// CHECK:STDOUT: %Self => constants.%I.facet.d87 // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %require_complete => constants.%require_complete.d0c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.c20) { -// CHECK:STDOUT: %Self => constants.%I.facet.c20 +// CHECK:STDOUT: specific @V(constants.%I.facet.7af) { +// CHECK:STDOUT: %Self => constants.%I.facet.7af // CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: } @@ -377,19 +377,19 @@ fn CallF() { // CHECK:STDOUT: %impl_witness.3db: = impl_witness (@impl.e86.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.721: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.155: %Convert.type.721 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.15e = facet_value %empty_tuple.type, %impl_witness.3db [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.15e = facet_value %empty_tuple.type, (%impl_witness.3db) [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet.1f7: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet.d87: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] // CHECK:STDOUT: %require_complete.d0c: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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: %impl_witness.85b: = impl_witness () [concrete] -// CHECK:STDOUT: %I.facet.b45: %I.type = facet_value %C, %impl_witness.85b [concrete] -// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %Convert.type.56d, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %I.facet.2df: %I.type = facet_value %C, (%impl_witness.85b) [concrete] +// CHECK:STDOUT: %.32d: type = fn_type_with_self_type %Convert.type.56d, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %empty_tuple, %Convert.155 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -420,7 +420,7 @@ fn CallF() { // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%C)> [concrete = constants.%ImplicitAs.type.15e] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc10: = impl_witness (@impl.e86.%Convert.decl) [concrete = constants.%impl_witness.3db] -// CHECK:STDOUT: impl_decl @impl.979 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.bb1 [concrete] {} { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // 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] @@ -428,8 +428,8 @@ fn CallF() { // CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.a1d] // 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: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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] @@ -438,7 +438,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc18: = impl_witness () [concrete = constants.%impl_witness.85b] -// CHECK:STDOUT: %impl.elem0: %.d4d = impl_witness_access constants.%impl_witness.3db, element0 [concrete = constants.%Convert.155] +// CHECK:STDOUT: %impl.elem0: %.32d = impl_witness_access constants.%impl_witness.3db, element0 [concrete = constants.%Convert.155] // CHECK:STDOUT: %bound_method: = bound_method constants.%empty_tuple, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %.loc18_13.1: ref %C = temporary_storage // CHECK:STDOUT: %Convert.call: init %C = call %bound_method(constants.%empty_tuple) to %.loc18_13.1 @@ -491,7 +491,7 @@ fn CallF() { // CHECK:STDOUT: witness = file.%impl_witness.loc10 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.979: %C.ref as %.loc18_13 { +// CHECK:STDOUT: impl @impl.bb1: %C.ref as %.loc18_13 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness.loc18 // CHECK:STDOUT: } @@ -518,14 +518,14 @@ fn CallF() { // CHECK:STDOUT: %require_complete => constants.%require_complete.9b1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.1f7) { -// CHECK:STDOUT: %Self => constants.%I.facet.1f7 +// CHECK:STDOUT: specific @V(constants.%I.facet.d87) { +// CHECK:STDOUT: %Self => constants.%I.facet.d87 // CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: %require_complete => constants.%require_complete.d0c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @V(constants.%I.facet.b45) { -// CHECK:STDOUT: %Self => constants.%I.facet.b45 +// CHECK:STDOUT: specific @V(constants.%I.facet.2df) { +// CHECK:STDOUT: %Self => constants.%I.facet.2df // CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %require_complete => constants.%complete_type // CHECK:STDOUT: } @@ -552,8 +552,8 @@ fn CallF() { // CHECK:STDOUT: %Negate.type: type = facet_type <@Negate> [concrete] // CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.1 [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Core.import_ref.c15) [concrete] -// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, %impl_witness [concrete] -// CHECK:STDOUT: %.45d: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%impl_witness) [concrete] +// CHECK:STDOUT: %.690: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] // CHECK:STDOUT: %Op.type.1be: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.bba: %Op.type.1be = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %int_1, %Op.bba [concrete] @@ -563,8 +563,8 @@ fn CallF() { // CHECK:STDOUT: %I.assoc_type.3f5: type = assoc_entity_type %I.type.057 [concrete] // CHECK:STDOUT: %assoc0.34f: %I.assoc_type.3f5 = assoc_entity element0, @I.%V [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type.057 = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type.057 = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -600,7 +600,7 @@ fn CallF() { // CHECK:STDOUT: %.loc15_7.2: type = converted %.loc15_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %I.ref: %I.type.dac = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] -// CHECK:STDOUT: %impl.elem0.loc15_14: %.45d = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.bba] +// CHECK:STDOUT: %impl.elem0.loc15_14: %.690 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.bba] // CHECK:STDOUT: %bound_method: = bound_method %int_1, %impl.elem0.loc15_14 [concrete = constants.%Op.bound] // CHECK:STDOUT: %int.snegate: init Core.IntLiteral = call %bound_method(%int_1) [concrete = constants.%int_-1] // CHECK:STDOUT: %.loc15_16.1: Core.IntLiteral = value_of_initializer %int.snegate [concrete = constants.%int_-1] @@ -612,8 +612,8 @@ fn CallF() { // CHECK:STDOUT: %V.ref: %I.assoc_type.3f5 = name_ref V, %.loc15_24.1 [concrete = constants.%assoc0.34f] // 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: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc15_24: = impl_witness_access %.Self.as_wit, element0 [concrete = ] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc15_24: = impl_witness_access %.Self.as_wit.iface0, element0 [concrete = ] // CHECK:STDOUT: %.loc15_30: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc15_18: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc15_24, @@ -714,10 +714,10 @@ fn CallF() { // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %ImplicitAs.type.2a8: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] // CHECK:STDOUT: %require_complete.d0c: = require_complete_type %.Self.as_type [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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] @@ -764,8 +764,8 @@ fn CallF() { // CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.a1d] // 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: %.Self.as_wit: = facet_access_witness %.Self.ref.loc8_54 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref.loc8_54, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %.Self.as_wit.iface0, 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] diff --git a/toolchain/check/testdata/impl/extend_impl.carbon b/toolchain/check/testdata/impl/extend_impl.carbon index c7bc9ea47f59..2d3b1e5039f5 100644 --- a/toolchain/check/testdata/impl/extend_impl.carbon +++ b/toolchain/check/testdata/impl/extend_impl.carbon @@ -37,12 +37,12 @@ fn G(c: C) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.a65: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.ad8: %F.type.a65 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.626: type = fn_type_with_self_type %F.type.b7b, %HasF.facet [concrete] +// CHECK:STDOUT: %.1bc: type = fn_type_with_self_type %F.type.b7b, %HasF.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -120,11 +120,11 @@ fn G(c: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc22: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type = name_ref F, @HasF.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc22: %.626 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.ad8] +// CHECK:STDOUT: %impl.elem0.loc22: %.1bc = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc22: init %empty_tuple.type = call %impl.elem0.loc22() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %F.ref.loc23: %HasF.assoc_type = name_ref F, @HasF.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc23: %.626 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.ad8] +// CHECK:STDOUT: %impl.elem0.loc23: %.1bc = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc23: init %empty_tuple.type = call %impl.elem0.loc23() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index 5e37756f2fac..ae447400d9f2 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -75,7 +75,7 @@ class X(U:! type) { // CHECK:STDOUT: %impl_witness.9bf: = impl_witness (@impl.3b1.%F.decl) [concrete] // CHECK:STDOUT: %F.type.94c: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.901: %F.type.94c = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type.b18 = facet_value %C, %impl_witness.9bf [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type.b18 = facet_value %C, (%impl_witness.9bf) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -85,8 +85,8 @@ class X(U:! type) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -94,7 +94,7 @@ class X(U:! type) { // CHECK:STDOUT: %Param.val: %Param = struct_value (%int_2.ef8) [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.da8: type = fn_type_with_self_type %F.type.7f1, %HasF.facet [concrete] +// CHECK:STDOUT: %.75e: type = fn_type_with_self_type %F.type.7f1, %HasF.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -224,7 +224,7 @@ class X(U:! type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc15_21.1: %struct_type.x.c96 = struct_literal (%int_2) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_21.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_21.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] @@ -245,7 +245,7 @@ class X(U:! type) { // CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %.loc21_17: %HasF.assoc_type.dc4 = specific_constant @HasF.%assoc0.loc5_14.1, @HasF(constants.%Param) [concrete = constants.%assoc0.a6b] // CHECK:STDOUT: %F.ref.loc21: %HasF.assoc_type.dc4 = name_ref F, %.loc21_17 [concrete = constants.%assoc0.a6b] -// CHECK:STDOUT: %impl.elem0.loc21: %.da8 = impl_witness_access constants.%impl_witness.9bf, element0 [concrete = constants.%F.901] +// CHECK:STDOUT: %impl.elem0.loc21: %.75e = impl_witness_access constants.%impl_witness.9bf, element0 [concrete = constants.%F.901] // CHECK:STDOUT: %.loc21_20.1: ref %Param = temporary_storage // CHECK:STDOUT: %F.call.loc21: init %Param = call %impl.elem0.loc21() to %.loc21_20.1 // CHECK:STDOUT: %.loc21_20.2: ref %Param = temporary %.loc21_20.1, %F.call.loc21 @@ -264,7 +264,7 @@ class X(U:! type) { // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %.loc22_17: %HasF.assoc_type.dc4 = specific_constant @HasF.%assoc0.loc5_14.1, @HasF(constants.%Param) [concrete = constants.%assoc0.a6b] // CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type.dc4 = name_ref F, %.loc22_17 [concrete = constants.%assoc0.a6b] -// CHECK:STDOUT: %impl.elem0.loc22: %.da8 = impl_witness_access constants.%impl_witness.9bf, element0 [concrete = constants.%F.901] +// CHECK:STDOUT: %impl.elem0.loc22: %.75e = impl_witness_access constants.%impl_witness.9bf, element0 [concrete = constants.%F.901] // CHECK:STDOUT: %.loc22_20.1: ref %Param = temporary_storage // CHECK:STDOUT: %F.call.loc22: init %Param = call %impl.elem0.loc22() to %.loc22_20.1 // CHECK:STDOUT: %.loc22_20.2: ref %Param = temporary %.loc22_20.1, %F.call.loc22 @@ -336,7 +336,7 @@ class X(U:! type) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%U) [symbolic] // CHECK:STDOUT: %F.type.e88: type = fn_type @F.2, @impl(%U) [symbolic] // CHECK:STDOUT: %F.b02: %F.type.e88 = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.325e65.2 = facet_value %X, %impl_witness [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.325e65.2 = facet_value %X, (%impl_witness) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %require_complete.441: = require_complete_type %X [symbolic] diff --git a/toolchain/check/testdata/impl/fail_call_invalid.carbon b/toolchain/check/testdata/impl/fail_call_invalid.carbon index ac9cb2188c93..176b37b9b8a8 100644 --- a/toolchain/check/testdata/impl/fail_call_invalid.carbon +++ b/toolchain/check/testdata/impl/fail_call_invalid.carbon @@ -39,10 +39,10 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %impl_witness.85b: = impl_witness () [concrete] // CHECK:STDOUT: %G.type.c98: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.e73: %G.type.c98 = struct_value () [concrete] -// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %i32, %impl_witness.85b [concrete] +// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %i32, (%impl_witness.85b) [concrete] // CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete] // CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete] -// CHECK:STDOUT: %.eac: type = fn_type_with_self_type %G.type.b60, %Simple.facet [concrete] +// CHECK:STDOUT: %.e92: type = fn_type_with_self_type %G.type.b60, %Simple.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -133,7 +133,7 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %Simple.ref: type = name_ref Simple, file.%Simple.decl [concrete = constants.%Simple.type] // CHECK:STDOUT: %G.ref: %Simple.assoc_type = name_ref G, @Simple.%assoc0 [concrete = constants.%assoc0.45f] -// CHECK:STDOUT: %impl.elem0: %.eac = impl_witness_access constants.%impl_witness.85b, element0 [concrete = ] +// CHECK:STDOUT: %impl.elem0: %.e92 = impl_witness_access constants.%impl_witness.85b, element0 [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon index 68aa9168e35f..7225f9718140 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -240,17 +240,17 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %F.type.44e: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.424: %F.type.44e = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.3bf: %I.type = facet_value %FExtraParam, %impl_witness.85bcb7.4 [concrete] +// CHECK:STDOUT: %I.facet.bbf: %I.type = facet_value %FExtraParam, (%impl_witness.85bcb7.4) [concrete] // CHECK:STDOUT: %FExtraImplicitParam: type = class_type @FExtraImplicitParam [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.5: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.e1a: type = fn_type @F.3 [concrete] // CHECK:STDOUT: %F.6ff: %F.type.e1a = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.33b: %I.type = facet_value %FExtraImplicitParam, %impl_witness.85bcb7.5 [concrete] +// CHECK:STDOUT: %I.facet.f18: %I.type = facet_value %FExtraImplicitParam, (%impl_witness.85bcb7.5) [concrete] // CHECK:STDOUT: %FExtraReturnType: type = class_type @FExtraReturnType [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.6: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.387: type = fn_type @F.4 [concrete] // CHECK:STDOUT: %F.df5: %F.type.387 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.fad: %I.type = facet_value %FExtraReturnType, %impl_witness.85bcb7.6 [concrete] +// CHECK:STDOUT: %I.facet.e05: %I.type = facet_value %FExtraReturnType, (%impl_witness.85bcb7.6) [concrete] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %Self.ccd: %J.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F.type.c14: type = fn_type @F.5 [concrete] @@ -261,37 +261,37 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %impl_witness.85bcb7.7: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.695: type = fn_type @F.6 [concrete] // CHECK:STDOUT: %F.738: %F.type.695 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.515: %J.type = facet_value %FMissingParam, %impl_witness.85bcb7.7 [concrete] +// CHECK:STDOUT: %J.facet.746: %J.type = facet_value %FMissingParam, (%impl_witness.85bcb7.7) [concrete] // CHECK:STDOUT: %FMissingImplicitParam: type = class_type @FMissingImplicitParam [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.8: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.d97: type = fn_type @F.7 [concrete] // CHECK:STDOUT: %F.01d: %F.type.d97 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.f88: %J.type = facet_value %FMissingImplicitParam, %impl_witness.85bcb7.8 [concrete] +// CHECK:STDOUT: %J.facet.300: %J.type = facet_value %FMissingImplicitParam, (%impl_witness.85bcb7.8) [concrete] // CHECK:STDOUT: %FMissingReturnType: type = class_type @FMissingReturnType [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.9: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.123: type = fn_type @F.8 [concrete] // CHECK:STDOUT: %F.c7d: %F.type.123 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.43b: %J.type = facet_value %FMissingReturnType, %impl_witness.85bcb7.9 [concrete] +// CHECK:STDOUT: %J.facet.c9e: %J.type = facet_value %FMissingReturnType, (%impl_witness.85bcb7.9) [concrete] // CHECK:STDOUT: %FDifferentParamType: type = class_type @FDifferentParamType [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.10: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.6b5: type = fn_type @F.9 [concrete] // CHECK:STDOUT: %F.043: %F.type.6b5 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.9b0: %J.type = facet_value %FDifferentParamType, %impl_witness.85bcb7.10 [concrete] +// CHECK:STDOUT: %J.facet.ee9: %J.type = facet_value %FDifferentParamType, (%impl_witness.85bcb7.10) [concrete] // CHECK:STDOUT: %FDifferentImplicitParamType: type = class_type @FDifferentImplicitParamType [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.11: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.d62: type = fn_type @F.10 [concrete] // CHECK:STDOUT: %F.886: %F.type.d62 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.4bb: %J.type = facet_value %FDifferentImplicitParamType, %impl_witness.85bcb7.11 [concrete] +// CHECK:STDOUT: %J.facet.5d6: %J.type = facet_value %FDifferentImplicitParamType, (%impl_witness.85bcb7.11) [concrete] // CHECK:STDOUT: %FDifferentReturnType: type = class_type @FDifferentReturnType [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.12: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.d3b: type = fn_type @F.11 [concrete] // CHECK:STDOUT: %F.be8: %F.type.d3b = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.5c7: %J.type = facet_value %FDifferentReturnType, %impl_witness.85bcb7.12 [concrete] +// CHECK:STDOUT: %J.facet.1f5: %J.type = facet_value %FDifferentReturnType, (%impl_witness.85bcb7.12) [concrete] // CHECK:STDOUT: %FDifferentParamName: type = class_type @FDifferentParamName [concrete] // CHECK:STDOUT: %impl_witness.85bcb7.13: = impl_witness () [concrete] // CHECK:STDOUT: %F.type.d19: type = fn_type @F.12 [concrete] // CHECK:STDOUT: %F.669: %F.type.d19 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.daf: %J.type = facet_value %FDifferentParamName, %impl_witness.85bcb7.13 [concrete] +// CHECK:STDOUT: %J.facet.19c: %J.type = facet_value %FDifferentParamName, (%impl_witness.85bcb7.13) [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] // CHECK:STDOUT: %Self.2ff: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.2ff [symbolic] @@ -315,7 +315,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %array_type.a41: type = array_type %int_4, %SelfNestedBadParam [concrete] // CHECK:STDOUT: %F.type.f90: type = fn_type @F.14 [concrete] // CHECK:STDOUT: %F.fa8: %F.type.f90 = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.61c: %SelfNested.type = facet_value %SelfNestedBadParam, %impl_witness.85bcb7.14 [concrete] +// CHECK:STDOUT: %SelfNested.facet.46a: %SelfNested.type = facet_value %SelfNestedBadParam, (%impl_witness.85bcb7.14) [concrete] // CHECK:STDOUT: %struct_type.x.y.a89: type = struct_type {.x: %SelfNestedBadParam, .y: %i32} [concrete] // CHECK:STDOUT: %tuple.type.9c9: type = tuple_type (%ptr.4cd, %struct_type.x.y.a89) [concrete] // CHECK:STDOUT: %SelfNestedBadReturnType: type = class_type @SelfNestedBadReturnType [concrete] @@ -325,7 +325,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %tuple.type.eb9: type = tuple_type (%ptr.612, %struct_type.x.y.ac5) [concrete] // CHECK:STDOUT: %F.type.0e7: type = fn_type @F.15 [concrete] // CHECK:STDOUT: %F.0bc: %F.type.0e7 = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.01f: %SelfNested.type = facet_value %SelfNestedBadReturnType, %impl_witness.85bcb7.15 [concrete] +// CHECK:STDOUT: %SelfNested.facet.e62: %SelfNested.type = facet_value %SelfNestedBadReturnType, (%impl_witness.85bcb7.15) [concrete] // CHECK:STDOUT: %array_type.126: type = array_type %int_4, %SelfNestedBadReturnType [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1086,27 +1086,27 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%Self.826) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%I.facet.3bf) {} +// CHECK:STDOUT: specific @F.1(constants.%I.facet.bbf) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%I.facet.33b) {} +// CHECK:STDOUT: specific @F.1(constants.%I.facet.f18) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%I.facet.fad) {} +// CHECK:STDOUT: specific @F.1(constants.%I.facet.e05) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.5(constants.%Self.ccd) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%J.facet.515) {} +// CHECK:STDOUT: specific @F.5(constants.%J.facet.746) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%J.facet.f88) {} +// CHECK:STDOUT: specific @F.5(constants.%J.facet.300) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%J.facet.43b) {} +// CHECK:STDOUT: specific @F.5(constants.%J.facet.c9e) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%J.facet.9b0) {} +// CHECK:STDOUT: specific @F.5(constants.%J.facet.ee9) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%J.facet.4bb) {} +// CHECK:STDOUT: specific @F.5(constants.%J.facet.5d6) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%J.facet.5c7) {} +// CHECK:STDOUT: specific @F.5(constants.%J.facet.1f5) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.5(constants.%J.facet.daf) {} +// CHECK:STDOUT: specific @F.5(constants.%J.facet.19c) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @F.13(constants.%Self.2ff) { // CHECK:STDOUT: %Self => constants.%Self.2ff @@ -1117,8 +1117,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %array_type.loc188_57.1 => constants.%array_type.873 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.13(constants.%SelfNested.facet.61c) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.61c +// CHECK:STDOUT: specific @F.13(constants.%SelfNested.facet.46a) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.46a // CHECK:STDOUT: %Self.as_type.loc188_16.1 => constants.%SelfNestedBadParam // CHECK:STDOUT: %ptr.loc188_16.1 => constants.%ptr.4cd // CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.a89 @@ -1126,8 +1126,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %array_type.loc188_57.1 => constants.%array_type.a41 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.13(constants.%SelfNested.facet.01f) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.01f +// CHECK:STDOUT: specific @F.13(constants.%SelfNested.facet.e62) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.e62 // CHECK:STDOUT: %Self.as_type.loc188_16.1 => constants.%SelfNestedBadReturnType // CHECK:STDOUT: %ptr.loc188_16.1 => constants.%ptr.612 // CHECK:STDOUT: %struct_type.x.y.loc188_37.1 => constants.%struct_type.x.y.ac5 diff --git a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon index 471b7feda70a..adcf6abd4f7b 100644 --- a/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon +++ b/toolchain/check/testdata/impl/fail_self_type_mismatch.carbon @@ -57,7 +57,7 @@ impl i32 as I { // CHECK:STDOUT: %C.6fb: type = class_type @C, @C(type, %i32) [concrete] // CHECK:STDOUT: %F.type.066: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.9ec: %F.type.066 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %i32, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { diff --git a/toolchain/check/testdata/impl/fail_todo_use_assoc_const.carbon b/toolchain/check/testdata/impl/fail_todo_use_assoc_const.carbon index fd80aef0dfc0..ed52e5dd5deb 100644 --- a/toolchain/check/testdata/impl/fail_todo_use_assoc_const.carbon +++ b/toolchain/check/testdata/impl/fail_todo_use_assoc_const.carbon @@ -113,22 +113,22 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, @J.%F.decl [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %J.facet.ad0: %J.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %J.facet.28c: %J.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %J_where.type.800: type = facet_type <@J where %impl.elem0 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %J_where.type.5f6: type = facet_type <@J where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness.f71: = impl_witness (%empty_struct_type, ) [concrete] -// CHECK:STDOUT: %F.type.159: type = fn_type @F.2 [concrete] -// CHECK:STDOUT: %F.59d: %F.type.159 = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.550: %J.type = facet_value %empty_tuple.type, %impl_witness.f71 [concrete] +// CHECK:STDOUT: %F.type.b97: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.747: %F.type.b97 = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.506: %J.type = facet_value %empty_tuple.type, (%impl_witness.f71) [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %J_where.type.2f6: type = facet_type <@J where %impl.elem0 = %C> [concrete] +// CHECK:STDOUT: %J_where.type.6f2: type = facet_type <@J where %impl.elem0 = %C> [concrete] // CHECK:STDOUT: %impl_witness.c2b: = impl_witness (%C, ) [concrete] -// CHECK:STDOUT: %F.type.01a: type = fn_type @F.3 [concrete] -// CHECK:STDOUT: %F.686: %F.type.01a = struct_value () [concrete] -// CHECK:STDOUT: %J.facet.38d: %J.type = facet_value %C, %impl_witness.c2b [concrete] +// CHECK:STDOUT: %F.type.69d: type = fn_type @F.3 [concrete] +// CHECK:STDOUT: %F.451: %F.type.69d = struct_value () [concrete] +// CHECK:STDOUT: %J.facet.e8d: %J.type = facet_value %C, (%impl_witness.c2b) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -147,7 +147,7 @@ impl () as I where .N = 2 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} -// CHECK:STDOUT: impl_decl @impl.2d9 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.8c7 [concrete] {} { // CHECK:STDOUT: %.loc22_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc22_7.2: type = converted %.loc22_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] @@ -156,17 +156,17 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.1e6] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc22_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc22_26.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc22_26.2: type = converted %.loc22_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc22_14: type = where_expr %.Self [concrete = constants.%J_where.type.800] { +// CHECK:STDOUT: %.loc22_14: type = where_expr %.Self [concrete = constants.%J_where.type.5f6] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc22_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc22: = impl_witness (constants.%empty_struct_type, ) [concrete = constants.%impl_witness.f71] // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: impl_decl @impl.fb4 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.f57 [concrete] {} { // CHECK:STDOUT: %C.ref.loc31_6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -174,10 +174,10 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.1e6] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc31_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref.loc31_24: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %.loc31_13: type = where_expr %.Self [concrete = constants.%J_where.type.2f6] { +// CHECK:STDOUT: %.loc31_13: type = where_expr %.Self [concrete = constants.%J_where.type.6f2] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %C.ref.loc31_24 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -228,8 +228,8 @@ impl () as I where .N = 2 { // CHECK:STDOUT: assoc_const U:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.2d9: %.loc22_7.2 as %.loc22_14 { -// CHECK:STDOUT: %F.decl: %F.type.159 = fn_decl @F.2 [concrete = constants.%F.59d] { +// CHECK:STDOUT: impl @impl.8c7: %.loc22_7.2 as %.loc22_14 { +// CHECK:STDOUT: %F.decl: %F.type.b97 = fn_decl @F.2 [concrete = constants.%F.747] { // CHECK:STDOUT: %self.patt: %empty_tuple.type = binding_pattern self // CHECK:STDOUT: %self.param_patt: %empty_tuple.type = value_param_pattern %self.patt, call_param0 // CHECK:STDOUT: %u.patt: %empty_struct_type = binding_pattern u @@ -240,7 +240,7 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %.loc23_31.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc23_31.2: type = converted %.loc23_31.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.2d9.%.loc22_7.2 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.8c7.%.loc22_7.2 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %self: %empty_tuple.type = bind_name self, %self.param // CHECK:STDOUT: %u.param: %empty_struct_type = value_param call_param1 // CHECK:STDOUT: %.loc23_24.1: type = splice_block %.loc23_24.3 [concrete = constants.%empty_struct_type] { @@ -257,8 +257,8 @@ impl () as I where .N = 2 { // CHECK:STDOUT: witness = file.%impl_witness.loc22 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.fb4: %C.ref.loc31_6 as %.loc31_13 { -// CHECK:STDOUT: %F.decl: %F.type.01a = fn_decl @F.3 [concrete = constants.%F.686] { +// CHECK:STDOUT: impl @impl.f57: %C.ref.loc31_6 as %.loc31_13 { +// CHECK:STDOUT: %F.decl: %F.type.69d = fn_decl @F.3 [concrete = constants.%F.451] { // CHECK:STDOUT: %self.patt: %C = binding_pattern self // CHECK:STDOUT: %self.param_patt: %C = value_param_pattern %self.patt, call_param0 // CHECK:STDOUT: %u.patt: %C = binding_pattern u @@ -268,7 +268,7 @@ impl () as I where .N = 2 { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref.loc32_29: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %self.param: %C = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.fb4.%C.ref.loc31_6 [concrete = constants.%C] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.f57.%C.ref.loc31_6 [concrete = constants.%C] // CHECK:STDOUT: %self: %C = bind_name self, %self.param // CHECK:STDOUT: %u.param: %C = value_param call_param1 // CHECK:STDOUT: %C.ref.loc32_23: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -320,15 +320,15 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%Self.as_type.3df // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.ad0) {} +// CHECK:STDOUT: specific @U(constants.%J.facet.28c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%J.facet.550) { -// CHECK:STDOUT: %Self => constants.%J.facet.550 +// CHECK:STDOUT: specific @F.1(constants.%J.facet.506) { +// CHECK:STDOUT: %Self => constants.%J.facet.506 // CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%J.facet.38d) { -// CHECK:STDOUT: %Self => constants.%J.facet.38d +// CHECK:STDOUT: specific @F.1(constants.%J.facet.e8d) { +// CHECK:STDOUT: %Self => constants.%J.facet.e8d // CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: @@ -347,16 +347,16 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %assoc1: %M.assoc_type = assoc_entity element1, @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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %M.facet.ba5: %M.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %M.facet.407: %M.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.b.347 = struct_value (%empty_struct) [concrete] // CHECK:STDOUT: %M_where.type: type = facet_type <@M where %impl.elem0 = %struct> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%struct, @impl.%G.decl) [concrete] -// CHECK:STDOUT: %G.type.aa2: type = fn_type @G.2 [concrete] -// CHECK:STDOUT: %G.816: %G.type.aa2 = struct_value () [concrete] -// CHECK:STDOUT: %M.facet.940: %M.type = facet_value %empty_tuple.type, %impl_witness [concrete] +// CHECK:STDOUT: %G.type.bf5: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.44e: %G.type.bf5 = struct_value () [concrete] +// CHECK:STDOUT: %M.facet.993: %M.type = facet_value %empty_tuple.type, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -382,8 +382,8 @@ impl () as I where .N = 2 { // 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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %.Self.as_wit.iface0, 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) // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] @@ -425,7 +425,7 @@ impl () as I where .N = 2 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %.loc8_7.2 as %.loc8_14 { -// CHECK:STDOUT: %G.decl: %G.type.aa2 = fn_decl @G.2 [concrete = constants.%G.816] { +// CHECK:STDOUT: %G.decl: %G.type.bf5 = fn_decl @G.2 [concrete = constants.%G.44e] { // CHECK:STDOUT: %return.patt: %empty_struct_type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %empty_struct_type = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -449,13 +449,13 @@ impl () as I where .N = 2 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.%.loc8_7.2 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] -// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%empty_tuple.type, constants.%impl_witness [concrete = constants.%M.facet.940] -// CHECK:STDOUT: %.loc10_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet.940] +// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%empty_tuple.type, (constants.%impl_witness) [concrete = constants.%M.facet.993] +// CHECK:STDOUT: %.loc10_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet.993] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_18 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc10_23: type = converted %.loc10_18, %as_type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc10_18 [concrete = constants.%impl_witness] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %as_wit, element0 [concrete = constants.%struct] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc10_18, element0 [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%struct] // CHECK:STDOUT: %.loc10_25: %empty_struct_type = struct_access %impl.elem0, element0 [concrete = constants.%empty_struct] // CHECK:STDOUT: return %.loc10_25 // CHECK:STDOUT: } @@ -464,11 +464,11 @@ impl () as I where .N = 2 { // CHECK:STDOUT: // CHECK:STDOUT: specific @G.1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.ba5) {} +// CHECK:STDOUT: specific @Z(constants.%M.facet.407) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%M.facet.940) {} +// CHECK:STDOUT: specific @G.1(constants.%M.facet.993) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.940) {} +// CHECK:STDOUT: specific @Z(constants.%M.facet.993) {} // CHECK:STDOUT: // CHECK:STDOUT: --- self_as_uses_correct_rewrite_constraint.carbon // CHECK:STDOUT: @@ -492,24 +492,24 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %C.7a7: type = class_type @C, @C(%empty_struct_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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %M.facet.ba5: %M.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %M.facet.407: %M.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %struct_type.b.347: type = struct_type {.b: %empty_struct_type} [concrete] // CHECK:STDOUT: %struct.0f3: %struct_type.b.86f = struct_value (%empty_struct_type) [concrete] -// CHECK:STDOUT: %M_where.type.fd0: type = facet_type <@M where %impl.elem0 = %struct.0f3> [concrete] -// CHECK:STDOUT: %impl_witness.046: = impl_witness (%struct.0f3, @impl.b80.%G.decl) [concrete] -// CHECK:STDOUT: %G.type.bce: type = fn_type @G.2 [concrete] -// CHECK:STDOUT: %G.8af: %G.type.bce = struct_value () [concrete] -// CHECK:STDOUT: %M.facet.f90: %M.type = facet_value %C.7a7, %impl_witness.046 [concrete] +// CHECK:STDOUT: %M_where.type.132: type = facet_type <@M where %impl.elem0 = %struct.0f3> [concrete] +// CHECK:STDOUT: %impl_witness.ae0: = impl_witness (%struct.0f3, @impl.9c5.%G.decl) [concrete] +// CHECK:STDOUT: %G.type.160: type = fn_type @G.2 [concrete] +// CHECK:STDOUT: %G.fc4: %G.type.160 = struct_value () [concrete] +// CHECK:STDOUT: %M.facet.508: %M.type = facet_value %C.7a7, (%impl_witness.ae0) [concrete] // CHECK:STDOUT: %C.3a0: type = class_type @C, @C(%empty_tuple.type) [concrete] // CHECK:STDOUT: %struct_type.b.161: type = struct_type {.b: %empty_tuple.type} [concrete] // CHECK:STDOUT: %struct.c94: %struct_type.b.86f = struct_value (%empty_tuple.type) [concrete] -// CHECK:STDOUT: %M_where.type.b49: type = facet_type <@M where %impl.elem0 = %struct.c94> [concrete] -// CHECK:STDOUT: %impl_witness.e37: = impl_witness (%struct.c94, @impl.be1.%G.decl) [concrete] -// CHECK:STDOUT: %G.type.875: type = fn_type @G.3 [concrete] -// CHECK:STDOUT: %G.702: %G.type.875 = struct_value () [concrete] -// CHECK:STDOUT: %M.facet.2a4: %M.type = facet_value %C.3a0, %impl_witness.e37 [concrete] +// CHECK:STDOUT: %M_where.type.363: type = facet_type <@M where %impl.elem0 = %struct.c94> [concrete] +// CHECK:STDOUT: %impl_witness.6b9: = impl_witness (%struct.c94, @impl.f46.%G.decl) [concrete] +// CHECK:STDOUT: %G.type.18e: type = fn_type @G.3 [concrete] +// CHECK:STDOUT: %G.066: %G.type.18e = struct_value () [concrete] +// CHECK:STDOUT: %M.facet.a97: %M.type = facet_value %C.3a0, (%impl_witness.6b9) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -532,7 +532,7 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %T.loc4_9.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc4_9.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %M.decl: type = interface_decl @M [concrete = constants.%M.type] {} {} -// CHECK:STDOUT: impl_decl @impl.b80 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.9c5 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc11_9: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc11_10: type = converted %.loc11_9, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -543,19 +543,19 @@ impl () as I where .N = 2 { // 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: %.loc11_23: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc11_35: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc11_36.1: %struct_type.b.347 = struct_literal (%.loc11_35) // CHECK:STDOUT: %.loc11_36.2: type = converted %.loc11_35, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %struct: %struct_type.b.86f = struct_value (%.loc11_36.2) [concrete = constants.%struct.0f3] // CHECK:STDOUT: %.loc11_36.3: %struct_type.b.86f = converted %.loc11_36.1, %struct [concrete = constants.%struct.0f3] -// CHECK:STDOUT: %.loc11_17: type = where_expr %.Self [concrete = constants.%M_where.type.fd0] { +// CHECK:STDOUT: %.loc11_17: type = where_expr %.Self [concrete = constants.%M_where.type.132] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc11_36.3 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (constants.%struct.0f3, @impl.b80.%G.decl) [concrete = constants.%impl_witness.046] -// CHECK:STDOUT: impl_decl @impl.be1 [concrete] {} { +// CHECK:STDOUT: %impl_witness.loc11: = impl_witness (constants.%struct.0f3, @impl.9c5.%G.decl) [concrete = constants.%impl_witness.ae0] +// CHECK:STDOUT: impl_decl @impl.f46 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc17_9: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc17_10: type = converted %.loc17_9, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -566,18 +566,18 @@ impl () as I where .N = 2 { // 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: %.loc17_23: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc17_35: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc17_36.1: %struct_type.b.161 = struct_literal (%.loc17_35) // CHECK:STDOUT: %.loc17_36.2: type = converted %.loc17_35, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %struct: %struct_type.b.86f = struct_value (%.loc17_36.2) [concrete = constants.%struct.c94] // CHECK:STDOUT: %.loc17_36.3: %struct_type.b.86f = converted %.loc17_36.1, %struct [concrete = constants.%struct.c94] -// CHECK:STDOUT: %.loc17_17: type = where_expr %.Self [concrete = constants.%M_where.type.b49] { +// CHECK:STDOUT: %.loc17_17: type = where_expr %.Self [concrete = constants.%M_where.type.363] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc17_36.3 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (constants.%struct.c94, @impl.be1.%G.decl) [concrete = constants.%impl_witness.e37] +// CHECK:STDOUT: %impl_witness.loc17: = impl_witness (constants.%struct.c94, @impl.f46.%G.decl) [concrete = constants.%impl_witness.6b9] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @M { @@ -605,8 +605,8 @@ impl () as I where .N = 2 { // CHECK:STDOUT: assoc_const Z:! %struct_type.b.86f; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.b80: %C as %.loc11_17 { -// CHECK:STDOUT: %G.decl: %G.type.bce = fn_decl @G.2 [concrete = constants.%G.8af] { +// CHECK:STDOUT: impl @impl.9c5: %C as %.loc11_17 { +// CHECK:STDOUT: %G.decl: %G.type.160 = fn_decl @G.2 [concrete = constants.%G.fc4] { // CHECK:STDOUT: %return.patt: type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: type = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -620,8 +620,8 @@ impl () as I where .N = 2 { // CHECK:STDOUT: witness = file.%impl_witness.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.be1: %C as %.loc17_17 { -// CHECK:STDOUT: %G.decl: %G.type.875 = fn_decl @G.3 [concrete = constants.%G.702] { +// CHECK:STDOUT: impl @impl.f46: %C as %.loc17_17 { +// CHECK:STDOUT: %G.decl: %G.type.18e = fn_decl @G.3 [concrete = constants.%G.066] { // CHECK:STDOUT: %return.patt: type = return_slot_pattern // CHECK:STDOUT: %return.param_patt: type = out_param_pattern %return.patt, call_param0 // CHECK:STDOUT: } { @@ -656,30 +656,30 @@ impl () as I where .N = 2 { // CHECK:STDOUT: // CHECK:STDOUT: fn @G.2() -> type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.b80.%C [concrete = constants.%C.7a7] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.9c5.%C [concrete = constants.%C.7a7] // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] -// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%C.7a7, constants.%impl_witness.046 [concrete = constants.%M.facet.f90] -// CHECK:STDOUT: %.loc13_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet.f90] +// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%C.7a7, (constants.%impl_witness.ae0) [concrete = constants.%M.facet.508] +// CHECK:STDOUT: %.loc13_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet.508] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc13_18 [concrete = constants.%C.7a7] // CHECK:STDOUT: %.loc13_23: type = converted %.loc13_18, %as_type [concrete = constants.%C.7a7] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc13_18 [concrete = constants.%impl_witness.046] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %as_wit, element0 [concrete = constants.%struct.0f3] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc13_18, element0 [concrete = constants.%impl_witness.ae0] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%struct.0f3] // CHECK:STDOUT: %.loc13_25: type = struct_access %impl.elem0, element0 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: return %.loc13_25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @G.3() -> type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.be1.%C [concrete = constants.%C.3a0] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.f46.%C [concrete = constants.%C.3a0] // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] -// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%C.3a0, constants.%impl_witness.e37 [concrete = constants.%M.facet.2a4] -// CHECK:STDOUT: %.loc19_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet.2a4] +// CHECK:STDOUT: %M.facet: %M.type = facet_value constants.%C.3a0, (constants.%impl_witness.6b9) [concrete = constants.%M.facet.a97] +// CHECK:STDOUT: %.loc19_18: %M.type = converted %Self.ref, %M.facet [concrete = constants.%M.facet.a97] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc19_18 [concrete = constants.%C.3a0] // CHECK:STDOUT: %.loc19_23: type = converted %.loc19_18, %as_type [concrete = constants.%C.3a0] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc19_18 [concrete = constants.%impl_witness.e37] -// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %as_wit, element0 [concrete = constants.%struct.c94] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc19_18, element0 [concrete = constants.%impl_witness.6b9] +// CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%struct.c94] // CHECK:STDOUT: %.loc19_25: type = struct_access %impl.elem0, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: return %.loc19_25 // CHECK:STDOUT: } @@ -698,20 +698,20 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %T.patt.loc4_9.2 => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.ba5) {} +// CHECK:STDOUT: specific @Z(constants.%M.facet.407) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%M.facet.f90) {} +// CHECK:STDOUT: specific @G.1(constants.%M.facet.508) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.f90) {} +// CHECK:STDOUT: specific @Z(constants.%M.facet.508) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_tuple.type) { // CHECK:STDOUT: %T.loc4_9.2 => constants.%empty_tuple.type // CHECK:STDOUT: %T.patt.loc4_9.2 => constants.%empty_tuple.type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%M.facet.2a4) {} +// CHECK:STDOUT: specific @G.1(constants.%M.facet.a97) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%M.facet.2a4) {} +// CHECK:STDOUT: specific @Z(constants.%M.facet.a97) {} // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_associated_int_in_array.carbon // CHECK:STDOUT: @@ -731,17 +731,17 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet.1f7: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %i32 = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet.d87: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %i32 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -749,9 +749,9 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %int_2.ef8> [concrete] // CHECK:STDOUT: %impl_witness.2c9: = impl_witness (%int_2.ef8, ) [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_2.ecc, bool [concrete] -// CHECK:STDOUT: %F.type.9f6: type = fn_type @F.2 [concrete] -// CHECK:STDOUT: %F.572: %F.type.9f6 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.7b2: %I.type = facet_value %empty_tuple.type, %impl_witness.2c9 [concrete] +// CHECK:STDOUT: %F.type.925: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.2a6: %F.type.925 = struct_value () [concrete] +// CHECK:STDOUT: %I.facet.3e8: %I.type = facet_value %empty_tuple.type, (%impl_witness.2c9) [concrete] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: %tuple.type: type = tuple_type (bool, bool) [concrete] @@ -777,7 +777,7 @@ impl () as I where .N = 2 { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} -// CHECK:STDOUT: impl_decl @impl.581 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.dd2 [concrete] {} { // CHECK:STDOUT: %.loc15_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc15_7.2: type = converted %.loc15_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] @@ -786,10 +786,10 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %N.ref: %I.assoc_type = name_ref N, @N.%assoc0 [concrete = constants.%assoc0.73c] // 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: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc15_20: %i32 = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc15_20: %i32 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc15_25: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15_25: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_25.1: = bound_method %int_2, %impl.elem0.loc15_25 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc15_25, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_25.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] @@ -843,8 +843,8 @@ impl () as I where .N = 2 { // CHECK:STDOUT: assoc_const N:! %i32; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.581: %.loc15_7.2 as %.loc15_14 { -// CHECK:STDOUT: %F.decl: %F.type.9f6 = fn_decl @F.2 [concrete = constants.%F.572] { +// CHECK:STDOUT: impl @impl.dd2: %.loc15_7.2 as %.loc15_14 { +// CHECK:STDOUT: %F.decl: %F.type.925 = fn_decl @F.2 [concrete = constants.%F.2a6] { // CHECK:STDOUT: %self.patt: %empty_tuple.type = binding_pattern self // CHECK:STDOUT: %self.param_patt: %empty_tuple.type = value_param_pattern %self.patt, call_param0 // CHECK:STDOUT: %return.patt: %array_type = return_slot_pattern @@ -856,7 +856,7 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %.loc16_31.2: type = converted %bool.make_type, %.loc16_31.1 [concrete = bool] // CHECK:STDOUT: %array_type: type = array_type %int_2, bool [concrete = constants.%array_type] // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 -// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.581.%.loc15_7.2 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, @impl.dd2.%.loc15_7.2 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %self: %empty_tuple.type = bind_name self, %self.param // CHECK:STDOUT: %return.param: ref %array_type = out_param call_param1 // CHECK:STDOUT: %return: ref %array_type = return_slot %return.param @@ -897,10 +897,10 @@ impl () as I where .N = 2 { // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.b70 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N(constants.%I.facet.1f7) {} +// CHECK:STDOUT: specific @N(constants.%I.facet.d87) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%I.facet.7b2) { -// CHECK:STDOUT: %Self => constants.%I.facet.7b2 +// CHECK:STDOUT: specific @F.1(constants.%I.facet.3e8) { +// CHECK:STDOUT: %Self => constants.%I.facet.3e8 // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_as.carbon b/toolchain/check/testdata/impl/impl_as.carbon index b028a44c4576..41af2db52c04 100644 --- a/toolchain/check/testdata/impl/impl_as.carbon +++ b/toolchain/check/testdata/impl/impl_as.carbon @@ -34,7 +34,7 @@ class C { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.e4b: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.c94: %F.type.e4b = struct_value () [concrete] -// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] diff --git a/toolchain/check/testdata/impl/impl_forall.carbon b/toolchain/check/testdata/impl/impl_forall.carbon index d2cfe1475215..0660acdcab5c 100644 --- a/toolchain/check/testdata/impl/impl_forall.carbon +++ b/toolchain/check/testdata/impl/impl_forall.carbon @@ -30,7 +30,7 @@ impl forall [T:! type] T as Simple { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.1e1: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.4c3: %F.type.1e1 = struct_value () [symbolic] -// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %T, %impl_witness [symbolic] +// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %T, (%impl_witness) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { diff --git a/toolchain/check/testdata/impl/lookup/alias.carbon b/toolchain/check/testdata/impl/lookup/alias.carbon index 1682ec40a23b..8e10c77f15ee 100644 --- a/toolchain/check/testdata/impl/lookup/alias.carbon +++ b/toolchain/check/testdata/impl/lookup/alias.carbon @@ -41,10 +41,10 @@ fn G(c: C) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.a02: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.dc7: %F.type.a02 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %.447: type = fn_type_with_self_type %F.type.b7b, %HasF.facet [concrete] +// CHECK:STDOUT: %.be1: type = fn_type_with_self_type %F.type.b7b, %HasF.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -124,11 +124,11 @@ fn G(c: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc24: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %G.ref.loc24: %HasF.assoc_type = name_ref G, @C.%G [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc24: %.447 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.dc7] +// CHECK:STDOUT: %impl.elem0.loc24: %.be1 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.dc7] // CHECK:STDOUT: %F.call.loc24: init %empty_tuple.type = call %impl.elem0.loc24() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %G.ref.loc25: %HasF.assoc_type = name_ref G, @C.%G [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc25: %.447 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.dc7] +// CHECK:STDOUT: %impl.elem0.loc25: %.be1 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.dc7] // CHECK:STDOUT: %F.call.loc25: init %empty_tuple.type = call %impl.elem0.loc25() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon b/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon index 2373f57aa408..1654b292ccc8 100644 --- a/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon +++ b/toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon @@ -53,12 +53,12 @@ impl C as I { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %F.type.b25: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.b45: %I.type = facet_value %C, %impl_witness.85b [concrete] -// CHECK:STDOUT: %.575: type = fn_type_with_self_type %F.type.cf0, %I.facet.b45 [concrete] +// CHECK:STDOUT: %I.facet.2df: %I.type = facet_value %C, (%impl_witness.85b) [concrete] +// CHECK:STDOUT: %.5b6: type = fn_type_with_self_type %F.type.cf0, %I.facet.2df [concrete] // CHECK:STDOUT: %impl_witness.054: = impl_witness (@impl.770.%F.decl) [concrete] // CHECK:STDOUT: %F.type.5d6: type = fn_type @F.3 [concrete] // CHECK:STDOUT: %F.a2e: %F.type.5d6 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.4ac: %I.type = facet_value %C, %impl_witness.054 [concrete] +// CHECK:STDOUT: %I.facet.702: %I.type = facet_value %C, (%impl_witness.054) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -140,7 +140,7 @@ impl C as I { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.575 = impl_witness_access constants.%impl_witness.85b, element0 [concrete = ] +// CHECK:STDOUT: %impl.elem0: %.5b6 = impl_witness_access constants.%impl_witness.85b, element0 [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -151,5 +151,5 @@ impl C as I { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%I.facet.4ac) {} +// CHECK:STDOUT: specific @F.1(constants.%I.facet.702) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index 07aa8412471c..035f5d9b5a2c 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -138,7 +138,7 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.d55: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.3fd: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.c98: %F.type.3fd = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.6fc: %HasF.type = facet_value %T, %impl_witness.d55 [symbolic] +// CHECK:STDOUT: %HasF.facet.322: %HasF.type = facet_value %T, (%impl_witness.d55) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -146,8 +146,8 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.d9b: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.type.2e4: type = fn_type @F.2, @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.f13: %F.type.2e4 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.18f: %HasF.type = facet_value %empty_struct_type, %impl_witness.d9b [concrete] -// CHECK:STDOUT: %.658: type = fn_type_with_self_type %F.type.b7b, %HasF.facet.18f [concrete] +// CHECK:STDOUT: %HasF.facet.ccf: %HasF.type = facet_value %empty_struct_type, (%impl_witness.d9b) [concrete] +// CHECK:STDOUT: %.23a: type = fn_type_with_self_type %F.type.b7b, %HasF.facet.ccf [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.f13, @F.2(%empty_struct_type) [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -259,7 +259,7 @@ fn G(x: A) { // CHECK:STDOUT: %x.ref: %empty_struct_type = name_ref x, %x // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.658 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%F.f13] +// CHECK:STDOUT: %impl.elem0: %.23a = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%F.f13] // CHECK:STDOUT: %bound_method.loc13_4: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %bound_method.loc13_14: = bound_method %x.ref, %specific_fn @@ -288,8 +288,8 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%HasF.facet.6fc) { -// CHECK:STDOUT: %Self => constants.%HasF.facet.6fc +// CHECK:STDOUT: specific @F.1(constants.%HasF.facet.322) { +// CHECK:STDOUT: %Self => constants.%HasF.facet.322 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: @@ -325,7 +325,7 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.d55: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.3fd: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.c98: %F.type.3fd = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.6fc: %HasF.type = facet_value %T, %impl_witness.d55 [symbolic] +// CHECK:STDOUT: %HasF.facet.322: %HasF.type = facet_value %T, (%impl_witness.d55) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -333,8 +333,8 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.d9b: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.type.2e4: type = fn_type @F.2, @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.f13: %F.type.2e4 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.18f: %HasF.type = facet_value %empty_struct_type, %impl_witness.d9b [concrete] -// CHECK:STDOUT: %.658: type = fn_type_with_self_type %F.type.b7b, %HasF.facet.18f [concrete] +// CHECK:STDOUT: %HasF.facet.ccf: %HasF.type = facet_value %empty_struct_type, (%impl_witness.d9b) [concrete] +// CHECK:STDOUT: %.23a: type = fn_type_with_self_type %F.type.b7b, %HasF.facet.ccf [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.f13, @F.2(%empty_struct_type) [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -467,7 +467,7 @@ fn G(x: A) { // CHECK:STDOUT: %x.ref: %empty_struct_type = name_ref x, %x // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.658 = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%F.f13] +// CHECK:STDOUT: %impl.elem0: %.23a = impl_witness_access constants.%impl_witness.d9b, element0 [concrete = constants.%F.f13] // CHECK:STDOUT: %bound_method.loc13_11: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %bound_method.loc13_21: = bound_method %x.ref, %specific_fn @@ -500,8 +500,8 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%HasF.facet.6fc) { -// CHECK:STDOUT: %Self => constants.%HasF.facet.6fc +// CHECK:STDOUT: specific @F.1(constants.%HasF.facet.322) { +// CHECK:STDOUT: %Self => constants.%HasF.facet.322 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: @@ -543,7 +543,7 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.7d1: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.8fe: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.92a: %F.type.8fe = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.83b: %HasF.type = facet_value %C.f2e, %impl_witness.7d1 [symbolic] +// CHECK:STDOUT: %HasF.facet.0a3: %HasF.type = facet_value %C.f2e, (%impl_witness.7d1) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %C.f2e [symbolic] // CHECK:STDOUT: %C.7a7: type = class_type @C, @C(%empty_struct_type) [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -551,8 +551,8 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.770: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.type.2e5: type = fn_type @F.2, @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.c77: %F.type.2e5 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.007: %HasF.type = facet_value %C.7a7, %impl_witness.770 [concrete] -// CHECK:STDOUT: %.4df: type = fn_type_with_self_type %F.type.b7b, %HasF.facet.007 [concrete] +// CHECK:STDOUT: %HasF.facet.7f6: %HasF.type = facet_value %C.7a7, (%impl_witness.770) [concrete] +// CHECK:STDOUT: %.4ce: type = fn_type_with_self_type %F.type.b7b, %HasF.facet.7f6 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.c77, @F.2(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -690,7 +690,7 @@ fn G(x: A) { // CHECK:STDOUT: %x.ref: %C.7a7 = name_ref x, %x // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, file.%HasF.decl [concrete = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, @HasF.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.4df = impl_witness_access constants.%impl_witness.770, element0 [concrete = constants.%F.c77] +// CHECK:STDOUT: %impl.elem0: %.4ce = impl_witness_access constants.%impl_witness.770, element0 [concrete = constants.%F.c77] // CHECK:STDOUT: %bound_method.loc15_4: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %bound_method.loc15_14: = bound_method %x.ref, %specific_fn @@ -732,8 +732,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @C(@F.2.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%HasF.facet.83b) { -// CHECK:STDOUT: %Self => constants.%HasF.facet.83b +// CHECK:STDOUT: specific @F.1(constants.%HasF.facet.0a3) { +// CHECK:STDOUT: %Self => constants.%HasF.facet.0a3 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C.f2e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -783,7 +783,7 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.142: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.6c8: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.008: %F.type.6c8 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet.77c: %HasF.type.901 = facet_value %empty_struct_type, %impl_witness.142 [symbolic] +// CHECK:STDOUT: %HasF.facet.557: %HasF.type.901 = facet_value %empty_struct_type, (%impl_witness.142) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %HasF.type.072: type = facet_type <@HasF, @HasF(%empty_struct_type)> [concrete] @@ -795,8 +795,8 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness.221: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.type.a13: type = fn_type @F.2, @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.8c6: %F.type.a13 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet.075: %HasF.type.072 = facet_value %empty_struct_type, %impl_witness.221 [concrete] -// CHECK:STDOUT: %.a00: type = fn_type_with_self_type %F.type.b0b, %HasF.facet.075 [concrete] +// CHECK:STDOUT: %HasF.facet.ab8: %HasF.type.072 = facet_value %empty_struct_type, (%impl_witness.221) [concrete] +// CHECK:STDOUT: %.ad0: type = fn_type_with_self_type %F.type.b0b, %HasF.facet.ab8 [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.8c6, @F.2(%empty_struct_type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -933,7 +933,7 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(constants.%empty_struct_type)> [concrete = constants.%HasF.type.072] // CHECK:STDOUT: %.loc13_14: %HasF.assoc_type.60b = specific_constant @HasF.%assoc0.loc5_21.1, @HasF(constants.%empty_struct_type) [concrete = constants.%assoc0.46d] // CHECK:STDOUT: %F.ref: %HasF.assoc_type.60b = name_ref F, %.loc13_14 [concrete = constants.%assoc0.46d] -// CHECK:STDOUT: %impl.elem0: %.a00 = impl_witness_access constants.%impl_witness.221, element0 [concrete = constants.%F.8c6] +// CHECK:STDOUT: %impl.elem0: %.ad0 = impl_witness_access constants.%impl_witness.221, element0 [concrete = constants.%F.8c6] // CHECK:STDOUT: %bound_method.loc13_4: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %bound_method.loc13_18: = bound_method %x.ref, %specific_fn @@ -983,10 +983,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.2(constants.%T) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%T, constants.%HasF.facet.77c) { +// CHECK:STDOUT: specific @F.1(constants.%T, constants.%HasF.facet.557) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.901 -// CHECK:STDOUT: %Self => constants.%HasF.facet.77c +// CHECK:STDOUT: %Self => constants.%HasF.facet.557 // CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1036,7 +1036,7 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T, %U) [symbolic] // CHECK:STDOUT: %F.type.56e: type = fn_type @F.2, @impl(%T, %U) [symbolic] // CHECK:STDOUT: %F.9b8: %F.type.56e = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %T, %impl_witness [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %T, (%impl_witness) [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] @@ -1203,7 +1203,7 @@ fn G(x: A) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.912: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.f30: %F.type.912 = struct_value () [symbolic] -// CHECK:STDOUT: %HasF.facet: %HasF.type.901 = facet_value %T, %impl_witness [symbolic] +// CHECK:STDOUT: %HasF.facet: %HasF.type.901 = facet_value %T, (%impl_witness) [symbolic] // CHECK:STDOUT: %require_complete.4ae: = require_complete_type %T [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index de38d4a29485..3c27df350d20 100644 --- a/toolchain/check/testdata/impl/lookup/instance_method.carbon +++ b/toolchain/check/testdata/impl/lookup/instance_method.carbon @@ -40,12 +40,12 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.f36: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.4c3: %F.type.f36 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%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: %F.type.b25: type = fn_type @F.3 [concrete] // CHECK:STDOUT: %F.c41: %F.type.b25 = struct_value () [concrete] -// CHECK:STDOUT: %.f8b: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] +// CHECK:STDOUT: %.ed5: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -161,7 +161,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.f8b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.4c3] +// CHECK:STDOUT: %impl.elem0: %.ed5 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.4c3] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %F.call: init %i32 = call %bound_method(%c.ref) // CHECK:STDOUT: %.loc24_15.1: %i32 = value_of_initializer %F.call diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon index 61fe21a4ed1d..2afc4c96734d 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/impl_forall.carbon @@ -68,7 +68,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %impl_witness.ab3b51.1: = impl_witness (@impl.%F.decl), @impl(%V) [symbolic] // CHECK:STDOUT: %F.type.0fea45.1: type = fn_type @F.2, @impl(%V) [symbolic] // CHECK:STDOUT: %F.d6ae34.1: %F.type.0fea45.1 = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet.5b0ece.1: %I.type.325e65.2 = facet_value %A.13025a.2, %impl_witness.ab3b51.1 [symbolic] +// CHECK:STDOUT: %I.facet.1299b2.1: %I.type.325e65.2 = facet_value %A.13025a.2, (%impl_witness.ab3b51.1) [symbolic] // CHECK:STDOUT: %require_complete.4aeca8.2: = require_complete_type %V [symbolic] // CHECK:STDOUT: %A.elem.1ceb36.2: type = unbound_element_type %A.13025a.2, %V [symbolic] // CHECK:STDOUT: %struct_type.n.848971.2: type = struct_type {.n: %V} [symbolic] @@ -93,8 +93,8 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %impl_witness.ab3b51.2: = impl_witness (@impl.%F.decl), @impl(%W) [symbolic] // CHECK:STDOUT: %F.type.0fea45.2: type = fn_type @F.2, @impl(%W) [symbolic] // CHECK:STDOUT: %F.d6ae34.2: %F.type.0fea45.2 = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet.5b0ece.2: %I.type.325e65.3 = facet_value %A.13025a.3, %impl_witness.ab3b51.2 [symbolic] -// CHECK:STDOUT: %.051: type = fn_type_with_self_type %F.type.2aef59.3, %I.facet.5b0ece.2 [symbolic] +// CHECK:STDOUT: %I.facet.1299b2.2: %I.type.325e65.3 = facet_value %A.13025a.3, (%impl_witness.ab3b51.2) [symbolic] +// CHECK:STDOUT: %.814: type = fn_type_with_self_type %F.type.2aef59.3, %I.facet.1299b2.2 [symbolic] // CHECK:STDOUT: %F.specific_fn.e98: = specific_function %F.d6ae34.2, @F.2(%W) [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %A.235: type = class_type @A, @A(%empty_struct_type) [concrete] @@ -113,8 +113,8 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %impl_witness.f35: = impl_witness (@impl.%F.decl), @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.type.875: type = fn_type @F.2, @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.158: %F.type.875 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet.f67: %I.type.885 = facet_value %A.235, %impl_witness.f35 [concrete] -// CHECK:STDOUT: %.f01: type = fn_type_with_self_type %F.type.684, %I.facet.f67 [concrete] +// CHECK:STDOUT: %I.facet.b64: %I.type.885 = facet_value %A.235, (%impl_witness.f35) [concrete] +// CHECK:STDOUT: %.f80: type = fn_type_with_self_type %F.type.684, %I.facet.b64 [concrete] // CHECK:STDOUT: %F.specific_fn.72f: = specific_function %F.158, @F.2(%empty_struct_type) [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: } @@ -333,8 +333,8 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %assoc0: @TestGeneric.%I.assoc_type (%I.assoc_type.955255.3) = assoc_entity element0, @I.%F.decl [symbolic = %assoc0 (constants.%assoc0.fef501.3)] // CHECK:STDOUT: %F.type.loc18_11.1: type = fn_type @F.1, @I(%W.loc17_16.2) [symbolic = %F.type.loc18_11.1 (constants.%F.type.2aef59.3)] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%W.loc17_16.2) [symbolic = %impl_witness (constants.%impl_witness.ab3b51.2)] -// CHECK:STDOUT: %I.facet: @TestGeneric.%I.type.loc18_16.2 (%I.type.325e65.3) = facet_value %A.loc17_32.2, %impl_witness [symbolic = %I.facet (constants.%I.facet.5b0ece.2)] -// CHECK:STDOUT: %.loc18_11: type = fn_type_with_self_type %F.type.loc18_11.1, %I.facet [symbolic = %.loc18_11 (constants.%.051)] +// CHECK:STDOUT: %I.facet: @TestGeneric.%I.type.loc18_16.2 (%I.type.325e65.3) = facet_value %A.loc17_32.2, (%impl_witness) [symbolic = %I.facet (constants.%I.facet.1299b2.2)] +// CHECK:STDOUT: %.loc18_11: type = fn_type_with_self_type %F.type.loc18_11.1, %I.facet [symbolic = %.loc18_11 (constants.%.814)] // CHECK:STDOUT: %F.type.loc18_11.2: type = fn_type @F.2, @impl(%W.loc17_16.2) [symbolic = %F.type.loc18_11.2 (constants.%F.type.0fea45.2)] // CHECK:STDOUT: %F: @TestGeneric.%F.type.loc18_11.2 (%F.type.0fea45.2) = struct_value () [symbolic = %F (constants.%F.d6ae34.2)] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F.2(%W.loc17_16.2) [symbolic = %F.specific_fn (constants.%F.specific_fn.e98)] @@ -347,7 +347,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %I.type.loc18_16.1: type = facet_type <@I, @I(constants.%W)> [symbolic = %I.type.loc18_16.2 (constants.%I.type.325e65.3)] // CHECK:STDOUT: %.loc18_17: @TestGeneric.%I.assoc_type (%I.assoc_type.955255.3) = specific_constant @I.%assoc0.loc8_26.1, @I(constants.%W) [symbolic = %assoc0 (constants.%assoc0.fef501.3)] // CHECK:STDOUT: %F.ref: @TestGeneric.%I.assoc_type (%I.assoc_type.955255.3) = name_ref F, %.loc18_17 [symbolic = %assoc0 (constants.%assoc0.fef501.3)] -// CHECK:STDOUT: %impl.elem0: @TestGeneric.%.loc18_11 (%.051) = impl_witness_access constants.%impl_witness.ab3b51.2, element0 [symbolic = %F (constants.%F.d6ae34.2)] +// CHECK:STDOUT: %impl.elem0: @TestGeneric.%.loc18_11 (%.814) = impl_witness_access constants.%impl_witness.ab3b51.2, element0 [symbolic = %F (constants.%F.d6ae34.2)] // CHECK:STDOUT: %bound_method.loc18_11: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.2(constants.%W) [symbolic = %F.specific_fn (constants.%F.specific_fn.e98)] // CHECK:STDOUT: %bound_method.loc18_21: = bound_method %a.ref, %specific_fn @@ -367,7 +367,7 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type)> [concrete = constants.%I.type.885] // CHECK:STDOUT: %.loc22_18: %I.assoc_type.67f = specific_constant @I.%assoc0.loc8_26.1, @I(constants.%empty_struct_type) [concrete = constants.%assoc0.639] // CHECK:STDOUT: %F.ref: %I.assoc_type.67f = name_ref F, %.loc22_18 [concrete = constants.%assoc0.639] -// CHECK:STDOUT: %impl.elem0: %.f01 = impl_witness_access constants.%impl_witness.f35, element0 [concrete = constants.%F.158] +// CHECK:STDOUT: %impl.elem0: %.f80 = impl_witness_access constants.%impl_witness.f35, element0 [concrete = constants.%F.158] // CHECK:STDOUT: %bound_method.loc22_11: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [concrete = constants.%F.specific_fn.72f] // CHECK:STDOUT: %bound_method.loc22_22: = bound_method %a.ref, %specific_fn @@ -453,10 +453,10 @@ fn TestSpecific(a: A({})) -> {} { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(@F.2.%V) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%V, constants.%I.facet.5b0ece.1) { +// CHECK:STDOUT: specific @F.1(constants.%V, constants.%I.facet.1299b2.1) { // CHECK:STDOUT: %U => constants.%V // CHECK:STDOUT: %I.type => constants.%I.type.325e65.2 -// CHECK:STDOUT: %Self => constants.%I.facet.5b0ece.1 +// CHECK:STDOUT: %Self => constants.%I.facet.1299b2.1 // CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%A.13025a.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon index 91c110a00683..231c3d5996a3 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon @@ -206,7 +206,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.a02: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.dc7: %F.type.a02 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -307,7 +307,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %impl_witness.722: = impl_witness (@impl.e95.%G.decl) [concrete] // CHECK:STDOUT: %G.type.05c: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.486: %G.type.05c = struct_value () [concrete] -// CHECK:STDOUT: %HasG.facet.085: %HasG.type = facet_value %C, %impl_witness.722 [concrete] +// CHECK:STDOUT: %HasG.facet.062: %HasG.type = facet_value %C, (%impl_witness.722) [concrete] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self.cf3: %HasF.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %F.type.dbc: type = fn_type @F.1 [concrete] @@ -316,11 +316,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %impl_witness.a36: = impl_witness (@impl.8af.%F.decl) [concrete] // CHECK:STDOUT: %F.type.bab: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.46f: %F.type.bab = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, %impl_witness.a36 [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%impl_witness.a36) [concrete] // CHECK:STDOUT: %impl_witness.9ed: = impl_witness (@impl.da9.%G.decl) [concrete] // CHECK:STDOUT: %G.type.c1d: type = fn_type @G.3 [concrete] // CHECK:STDOUT: %G.294: %G.type.c1d = struct_value () [concrete] -// CHECK:STDOUT: %HasG.facet.6fc: %HasG.type = facet_value %D, %impl_witness.9ed [concrete] +// CHECK:STDOUT: %HasG.facet.548: %HasG.type = facet_value %D, (%impl_witness.9ed) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -490,8 +490,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type.133 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.085) { -// CHECK:STDOUT: %Self => constants.%HasG.facet.085 +// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.062) { +// CHECK:STDOUT: %Self => constants.%HasG.facet.062 // CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: @@ -505,8 +505,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.as_type => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.6fc) { -// CHECK:STDOUT: %Self => constants.%HasG.facet.6fc +// CHECK:STDOUT: specific @G.1(constants.%HasG.facet.548) { +// CHECK:STDOUT: %Self => constants.%HasG.facet.548 // CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: @@ -527,8 +527,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %F.a2b: %F.type.dbc = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%PackageA.import_ref.148) [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness [concrete] -// CHECK:STDOUT: %.e6d: type = fn_type_with_self_type %F.type.dbc, %HasF.facet [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%impl_witness) [concrete] +// CHECK:STDOUT: %.a6c: type = fn_type_with_self_type %F.type.dbc, %HasF.facet [concrete] // CHECK:STDOUT: %F.type.4e3: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.857: %F.type.4e3 = struct_value () [concrete] // CHECK:STDOUT: } @@ -596,7 +596,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageA.ref.loc7: = name_ref PackageA, imports.%PackageA [concrete = imports.%PackageA] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%PackageA.HasF [concrete = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.566 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.e6d = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.857] +// CHECK:STDOUT: %impl.elem0: %.a6c = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.857] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return @@ -635,8 +635,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%PackageB.import_ref.0cd) [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, %impl_witness [concrete] -// CHECK:STDOUT: %.205: type = fn_type_with_self_type %F.type.dbc, %HasF.facet [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %D, (%impl_witness) [concrete] +// CHECK:STDOUT: %.769: type = fn_type_with_self_type %F.type.dbc, %HasF.facet [concrete] // CHECK:STDOUT: %F.type.394: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.1fc: %F.type.394 = struct_value () [concrete] // CHECK:STDOUT: } @@ -752,7 +752,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageA.ref: = name_ref PackageA, imports.%PackageA [concrete = imports.%PackageA] // CHECK:STDOUT: %HasF.ref: type = name_ref HasF, imports.%PackageA.HasF [concrete = constants.%HasF.type] // CHECK:STDOUT: %F.ref: %HasF.assoc_type = name_ref F, imports.%PackageA.import_ref.566 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.205 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.1fc] +// CHECK:STDOUT: %impl.elem0: %.769 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.1fc] // CHECK:STDOUT: %bound_method: = bound_method %d.ref, %impl.elem0 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %bound_method(%d.ref) // CHECK:STDOUT: return @@ -791,8 +791,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%PackageB.import_ref.9ec) [concrete] -// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, %impl_witness [concrete] -// CHECK:STDOUT: %.25a: type = fn_type_with_self_type %G.type.d9e, %HasG.facet [concrete] +// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%impl_witness) [concrete] +// CHECK:STDOUT: %.145: type = fn_type_with_self_type %G.type.d9e, %HasG.facet [concrete] // CHECK:STDOUT: %G.type.18e: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.dbb: %G.type.18e = struct_value () [concrete] // CHECK:STDOUT: } @@ -908,7 +908,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageB.ref: = name_ref PackageB, imports.%PackageB [concrete = imports.%PackageB] // CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%PackageB.HasG [concrete = constants.%HasG.type] // CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.604 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.25a = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.dbb] +// CHECK:STDOUT: %impl.elem0: %.145 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.dbb] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return @@ -947,8 +947,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%PackageB.import_ref.b0a) [concrete] -// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %D, %impl_witness [concrete] -// CHECK:STDOUT: %.b8e: type = fn_type_with_self_type %G.type.d9e, %HasG.facet [concrete] +// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %D, (%impl_witness) [concrete] +// CHECK:STDOUT: %.b47: type = fn_type_with_self_type %G.type.d9e, %HasG.facet [concrete] // CHECK:STDOUT: %G.type.405: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.703: %G.type.405 = struct_value () [concrete] // CHECK:STDOUT: } @@ -1051,7 +1051,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageB.ref.loc7: = name_ref PackageB, imports.%PackageB [concrete = imports.%PackageB] // CHECK:STDOUT: %HasG.ref: type = name_ref HasG, imports.%PackageB.HasG [concrete = constants.%HasG.type] // CHECK:STDOUT: %G.ref: %HasG.assoc_type = name_ref G, imports.%PackageB.import_ref.604 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.b8e = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.703] +// CHECK:STDOUT: %impl.elem0: %.b47 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.703] // CHECK:STDOUT: %bound_method: = bound_method %d.ref, %impl.elem0 // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %bound_method(%d.ref) // CHECK:STDOUT: return @@ -1085,7 +1085,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%H.decl) [concrete] // CHECK:STDOUT: %H.type.707: type = fn_type @H.2 [concrete] // CHECK:STDOUT: %H.8d7: %H.type.707 = struct_value () [concrete] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, %impl_witness [concrete] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1174,8 +1174,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %H.246: %H.type.386 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%PackageAssociatedInterface.import_ref.6d7) [concrete] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, %impl_witness [concrete] -// CHECK:STDOUT: %.a8b: type = fn_type_with_self_type %H.type.386, %Z.facet [concrete] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_tuple.type, (%impl_witness) [concrete] +// CHECK:STDOUT: %.c44: type = fn_type_with_self_type %H.type.386, %Z.facet [concrete] // CHECK:STDOUT: %H.type.ab3: type = fn_type @H.2 [concrete] // CHECK:STDOUT: %H.c25: %H.type.ab3 = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -1223,7 +1223,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageAssociatedInterface.ref: = name_ref PackageAssociatedInterface, imports.%PackageAssociatedInterface [concrete = imports.%PackageAssociatedInterface] // CHECK:STDOUT: %Z.ref: type = name_ref Z, imports.%PackageAssociatedInterface.Z [concrete = constants.%Z.type] // CHECK:STDOUT: %H.ref: %Z.assoc_type = name_ref H, imports.%PackageAssociatedInterface.import_ref.ddc [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.a8b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%H.c25] +// CHECK:STDOUT: %impl.elem0: %.c44 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%H.c25] // CHECK:STDOUT: %bound_method: = bound_method %.loc7_4.1, %impl.elem0 // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc7_4.2: %empty_tuple.type = converted %.loc7_4.1, %empty_tuple [concrete = constants.%empty_tuple] @@ -1375,13 +1375,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%K.decl) [concrete] // CHECK:STDOUT: %K.type.dcd: type = fn_type @K.2 [concrete] // CHECK:STDOUT: %K.2e9: %K.type.dcd = struct_value () [concrete] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.241, %impl_witness [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.241, (%impl_witness) [concrete] // CHECK:STDOUT: %L.type: type = fn_type @L [concrete] // CHECK:STDOUT: %L: %L.type = struct_value () [concrete] // CHECK:STDOUT: %AnyParam.val: %AnyParam.241 = struct_value () [concrete] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type %Y.type [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.ce2 [concrete] -// CHECK:STDOUT: %.572: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] +// CHECK:STDOUT: %.bae: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1518,7 +1518,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageHasParam.ref.loc14: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] // CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.5e7 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.572 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%K.2e9] +// CHECK:STDOUT: %impl.elem0: %.bae = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%K.2e9] // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 // CHECK:STDOUT: %.loc14: %AnyParam.241 = bind_value %obj.ref // CHECK:STDOUT: %K.call: init %empty_tuple.type = call %bound_method(%.loc14) @@ -1589,8 +1589,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f64 [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%PackageGenericInterface.import_ref.456) [concrete] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.861, %impl_witness [concrete] -// CHECK:STDOUT: %.0fb: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %AnyParam.861, (%impl_witness) [concrete] +// CHECK:STDOUT: %.808: type = fn_type_with_self_type %K.type.311, %Y.facet [concrete] // CHECK:STDOUT: %K.type.7f9: type = fn_type @K.2 [concrete] // CHECK:STDOUT: %K.c3c: %K.type.7f9 = struct_value () [concrete] // CHECK:STDOUT: } @@ -1700,7 +1700,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageHasParam.ref.loc10: = name_ref PackageHasParam, imports.%PackageHasParam [concrete = imports.%PackageHasParam] // CHECK:STDOUT: %Y.ref: type = name_ref Y, imports.%PackageHasParam.Y [concrete = constants.%Y.type] // CHECK:STDOUT: %K.ref: %Y.assoc_type = name_ref K, imports.%PackageHasParam.import_ref.5e7 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.0fb = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%K.c3c] +// CHECK:STDOUT: %impl.elem0: %.808 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%K.c3c] // CHECK:STDOUT: %bound_method: = bound_method %obj.ref, %impl.elem0 // CHECK:STDOUT: %.loc10: %AnyParam.861 = bind_value %obj.ref // CHECK:STDOUT: %K.call: init %empty_tuple.type = call %bound_method(%.loc10) @@ -1786,7 +1786,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.06f: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.13c: %F.type.06f = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.69b, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.69b, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon index 28fe21ee2b62..e98c829a5530 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon @@ -207,7 +207,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.b63: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.d5f: %F.type.b63 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type.e45 = facet_value %X, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type.e45 = facet_value %X, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -371,8 +371,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %assoc0.0fc: %I.assoc_type.9f3 = assoc_entity element0, imports.%Main.import_ref.e54 [concrete] // CHECK:STDOUT: %assoc0.249: %I.assoc_type.955 = assoc_entity element0, imports.%Main.import_ref.479 [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.7f5) [concrete] -// CHECK:STDOUT: %I.facet: %I.type.e45 = facet_value %X, %impl_witness [concrete] -// CHECK:STDOUT: %.e37: type = fn_type_with_self_type %F.type.14f, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type.e45 = facet_value %X, (%impl_witness) [concrete] +// CHECK:STDOUT: %.f71: type = fn_type_with_self_type %F.type.14f, %I.facet [concrete] // CHECK:STDOUT: %F.type.b63: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.d5f: %F.type.b63 = struct_value () [concrete] // CHECK:STDOUT: } @@ -464,7 +464,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%InInterfaceArgs)> [concrete = constants.%I.type.e45] // CHECK:STDOUT: %.loc6: %I.assoc_type.9f3 = specific_constant imports.%Main.import_ref.cd3, @I(constants.%InInterfaceArgs) [concrete = constants.%assoc0.0fc] // CHECK:STDOUT: %F.ref: %I.assoc_type.9f3 = name_ref F, %.loc6 [concrete = constants.%assoc0.0fc] -// CHECK:STDOUT: %impl.elem0: %.e37 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.d5f] +// CHECK:STDOUT: %impl.elem0: %.f71 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.d5f] // CHECK:STDOUT: %bound_method: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %bound_method(%x.ref) // CHECK:STDOUT: return @@ -539,7 +539,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.fab: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.7ab: %F.type.fab = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type.45c = facet_value %C.23b, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type.45c = facet_value %C.23b, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -737,8 +737,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %assoc0.ba0: %I.assoc_type.a7e = assoc_entity element0, imports.%Main.import_ref.e54 [concrete] // CHECK:STDOUT: %assoc0.249: %I.assoc_type.955 = assoc_entity element0, imports.%Main.import_ref.479 [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.ae4) [concrete] -// CHECK:STDOUT: %I.facet: %I.type.45c = facet_value %C.23b, %impl_witness [concrete] -// CHECK:STDOUT: %.c87: type = fn_type_with_self_type %F.type.56a, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type.45c = facet_value %C.23b, (%impl_witness) [concrete] +// CHECK:STDOUT: %.0e8: type = fn_type_with_self_type %F.type.56a, %I.facet [concrete] // CHECK:STDOUT: %F.type.fab: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.7ab: %F.type.fab = struct_value () [concrete] // CHECK:STDOUT: } @@ -851,7 +851,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%X)> [concrete = constants.%I.type.45c] // CHECK:STDOUT: %.loc6_34: %I.assoc_type.a7e = specific_constant imports.%Main.import_ref.cd3, @I(constants.%X) [concrete = constants.%assoc0.ba0] // CHECK:STDOUT: %F.ref: %I.assoc_type.a7e = name_ref F, %.loc6_34 [concrete = constants.%assoc0.ba0] -// CHECK:STDOUT: %impl.elem0: %.c87 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.7ab] +// CHECK:STDOUT: %impl.elem0: %.0e8 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.7ab] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %bound_method(%c.ref) // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/subtyping.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/subtyping.carbon index 8e1ba8a59f88..072d477e44e1 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/subtyping.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/subtyping.carbon @@ -42,8 +42,8 @@ fn WithExtraWhere[U:! A where .Self impls type](y: U) { // CHECK:STDOUT: %WithExtraWhere.type: type = fn_type @WithExtraWhere [concrete] // CHECK:STDOUT: %WithExtraWhere: %WithExtraWhere.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.732: = require_complete_type %U.as_type [symbolic] -// CHECK:STDOUT: %U.as_wit: = facet_access_witness %U [symbolic] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %U.as_type, %U.as_wit [symbolic] +// CHECK:STDOUT: %U.as_wit.iface0: = facet_access_witness %U, element0 [symbolic] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %U.as_type, (%U.as_wit.iface0) [symbolic] // CHECK:STDOUT: %TakesA.specific_fn: = specific_function %TakesA, @TakesA(%A.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -124,19 +124,19 @@ fn WithExtraWhere[U:! A where .Self impls type](y: U) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @WithExtraWhere.%U.as_type.loc7_52.2 (%U.as_type) [symbolic = %require_complete (constants.%require_complete.732)] -// CHECK:STDOUT: %U.as_wit.loc8_11.3: = facet_access_witness %U.loc7_19.2 [symbolic = %U.as_wit.loc8_11.3 (constants.%U.as_wit)] -// CHECK:STDOUT: %A.facet.loc8_11.3: %A.type = facet_value %U.as_type.loc7_52.2, %U.as_wit.loc8_11.3 [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] +// CHECK:STDOUT: %U.as_wit.iface0.loc8_11.3: = facet_access_witness %U.loc7_19.2, element0 [symbolic = %U.as_wit.iface0.loc8_11.3 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %A.facet.loc8_11.3: %A.type = facet_value %U.as_type.loc7_52.2, (%U.as_wit.iface0.loc8_11.3) [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] // CHECK:STDOUT: %TakesA.specific_fn.loc8_3.2: = specific_function constants.%TakesA, @TakesA(%A.facet.loc8_11.3) [symbolic = %TakesA.specific_fn.loc8_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%U.patt.loc7_19.1: %A_where.type](%y.param_patt: @WithExtraWhere.%U.as_type.loc7_52.2 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesA.ref: %TakesA.type = name_ref TakesA, file.%TakesA.decl [concrete = constants.%TakesA] // CHECK:STDOUT: %y.ref: @WithExtraWhere.%U.as_type.loc7_52.2 (%U.as_type) = name_ref y, %y -// CHECK:STDOUT: %U.as_wit.loc8_11.1: = facet_access_witness constants.%U [symbolic = %U.as_wit.loc8_11.3 (constants.%U.as_wit)] -// CHECK:STDOUT: %A.facet.loc8_11.1: %A.type = facet_value constants.%U.as_type, %U.as_wit.loc8_11.1 [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] +// CHECK:STDOUT: %U.as_wit.iface0.loc8_11.1: = facet_access_witness constants.%U, element0 [symbolic = %U.as_wit.iface0.loc8_11.3 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %A.facet.loc8_11.1: %A.type = facet_value constants.%U.as_type, (%U.as_wit.iface0.loc8_11.1) [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] // CHECK:STDOUT: %.loc8_11.1: %A.type = converted constants.%U.as_type, %A.facet.loc8_11.1 [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] -// CHECK:STDOUT: %U.as_wit.loc8_11.2: = facet_access_witness constants.%U [symbolic = %U.as_wit.loc8_11.3 (constants.%U.as_wit)] -// CHECK:STDOUT: %A.facet.loc8_11.2: %A.type = facet_value constants.%U.as_type, %U.as_wit.loc8_11.2 [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] +// CHECK:STDOUT: %U.as_wit.iface0.loc8_11.2: = facet_access_witness constants.%U, element0 [symbolic = %U.as_wit.iface0.loc8_11.3 (constants.%U.as_wit.iface0)] +// CHECK:STDOUT: %A.facet.loc8_11.2: %A.type = facet_value constants.%U.as_type, (%U.as_wit.iface0.loc8_11.2) [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] // CHECK:STDOUT: %.loc8_11.2: %A.type = converted constants.%U.as_type, %A.facet.loc8_11.2 [symbolic = %A.facet.loc8_11.3 (constants.%A.facet)] // CHECK:STDOUT: %TakesA.specific_fn.loc8_3.1: = specific_function %TakesA.ref, @TakesA(constants.%A.facet) [symbolic = %TakesA.specific_fn.loc8_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: %TakesA.call: init %empty_tuple.type = call %TakesA.specific_fn.loc8_3.1(%y.ref) diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index 3d9f091eacc2..7870bfa09d0c 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -119,7 +119,7 @@ fn Call() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.5d6: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a2e: %F.type.5d6 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -268,8 +268,8 @@ fn Call() { // CHECK:STDOUT: %F.bc6: %F.type.cf0 = struct_value () [concrete] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.742) [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [concrete] -// CHECK:STDOUT: %.076: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%impl_witness) [concrete] +// CHECK:STDOUT: %.bfe: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] // CHECK:STDOUT: %F.type.5d6: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.a2e: %F.type.5d6 = struct_value () [concrete] // CHECK:STDOUT: } @@ -330,7 +330,7 @@ fn Call() { // CHECK:STDOUT: %Get.call: init %C = call %Get.ref() to %.loc9_7.1 // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.bcb [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.076 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.a2e] +// CHECK:STDOUT: %impl.elem0: %.bfe = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.a2e] // CHECK:STDOUT: %bound_method: = bound_method %Get.call, %impl.elem0 // CHECK:STDOUT: %.loc9_7.2: ref %C = temporary %.loc9_7.1, %Get.call // CHECK:STDOUT: %.loc9_7.3: %C = bind_value %.loc9_7.2 diff --git a/toolchain/check/testdata/impl/multiple_extend.carbon b/toolchain/check/testdata/impl/multiple_extend.carbon index 63f16bb20a3f..d484ed9a9302 100644 --- a/toolchain/check/testdata/impl/multiple_extend.carbon +++ b/toolchain/check/testdata/impl/multiple_extend.carbon @@ -180,17 +180,17 @@ fn P(o: O) { // CHECK:STDOUT: %impl_witness.329: = impl_witness (@impl.670.%F.decl) [concrete] // CHECK:STDOUT: %F.type.a65: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.ad8: %F.type.a65 = struct_value () [concrete] -// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, %impl_witness.329 [concrete] +// CHECK:STDOUT: %HasF.facet: %HasF.type = facet_value %C, (%impl_witness.329) [concrete] // CHECK:STDOUT: %impl_witness.42a: = impl_witness (@impl.096.%G.decl) [concrete] // CHECK:STDOUT: %G.type.cf6: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.957: %G.type.cf6 = struct_value () [concrete] -// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, %impl_witness.42a [concrete] +// CHECK:STDOUT: %HasG.facet: %HasG.type = facet_value %C, (%impl_witness.42a) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %.626: type = fn_type_with_self_type %F.type.b7b, %HasF.facet [concrete] -// CHECK:STDOUT: %.790: type = fn_type_with_self_type %G.type.d27, %HasG.facet [concrete] +// CHECK:STDOUT: %.1bc: type = fn_type_with_self_type %F.type.b7b, %HasF.facet [concrete] +// CHECK:STDOUT: %.bba: type = fn_type_with_self_type %G.type.d27, %HasG.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -309,19 +309,19 @@ fn P(o: O) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc22: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %F.ref.loc22: %HasF.assoc_type = name_ref F, @HasF.%assoc0 [concrete = constants.%assoc0.992] -// CHECK:STDOUT: %impl.elem0.loc22: %.626 = impl_witness_access constants.%impl_witness.329, element0 [concrete = constants.%F.ad8] +// CHECK:STDOUT: %impl.elem0.loc22: %.1bc = impl_witness_access constants.%impl_witness.329, element0 [concrete = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc22: init %empty_tuple.type = call %impl.elem0.loc22() // CHECK:STDOUT: %c.ref.loc23: %C = name_ref c, %c // CHECK:STDOUT: %F.ref.loc23: %HasF.assoc_type = name_ref F, @HasF.%assoc0 [concrete = constants.%assoc0.992] -// CHECK:STDOUT: %impl.elem0.loc23: %.626 = impl_witness_access constants.%impl_witness.329, element0 [concrete = constants.%F.ad8] +// CHECK:STDOUT: %impl.elem0.loc23: %.1bc = impl_witness_access constants.%impl_witness.329, element0 [concrete = constants.%F.ad8] // CHECK:STDOUT: %F.call.loc23: init %empty_tuple.type = call %impl.elem0.loc23() // CHECK:STDOUT: %C.ref.loc24: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %G.ref.loc24: %HasG.assoc_type = name_ref G, @HasG.%assoc0 [concrete = constants.%assoc0.58a] -// CHECK:STDOUT: %impl.elem0.loc24: %.790 = impl_witness_access constants.%impl_witness.42a, element0 [concrete = constants.%G.957] +// CHECK:STDOUT: %impl.elem0.loc24: %.bba = impl_witness_access constants.%impl_witness.42a, element0 [concrete = constants.%G.957] // CHECK:STDOUT: %G.call.loc24: init %empty_tuple.type = call %impl.elem0.loc24() // CHECK:STDOUT: %c.ref.loc25: %C = name_ref c, %c // CHECK:STDOUT: %G.ref.loc25: %HasG.assoc_type = name_ref G, @HasG.%assoc0 [concrete = constants.%assoc0.58a] -// CHECK:STDOUT: %impl.elem0.loc25: %.790 = impl_witness_access constants.%impl_witness.42a, element0 [concrete = constants.%G.957] +// CHECK:STDOUT: %impl.elem0.loc25: %.bba = impl_witness_access constants.%impl_witness.42a, element0 [concrete = constants.%G.957] // CHECK:STDOUT: %G.call.loc25: init %empty_tuple.type = call %impl.elem0.loc25() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -353,11 +353,11 @@ fn P(o: O) { // CHECK:STDOUT: %impl_witness.73a: = impl_witness (@impl.909.%A.decl) [concrete] // CHECK:STDOUT: %A.type.468: type = fn_type @A.3 [concrete] // CHECK:STDOUT: %A.efc: %A.type.468 = struct_value () [concrete] -// CHECK:STDOUT: %HasA1.facet: %HasA1.type = facet_value %D, %impl_witness.73a [concrete] +// CHECK:STDOUT: %HasA1.facet: %HasA1.type = facet_value %D, (%impl_witness.73a) [concrete] // CHECK:STDOUT: %impl_witness.baf: = impl_witness (@impl.390.%A.decl) [concrete] // CHECK:STDOUT: %A.type.938: type = fn_type @A.4 [concrete] // CHECK:STDOUT: %A.890: %A.type.938 = struct_value () [concrete] -// CHECK:STDOUT: %HasA2.facet: %HasA2.type = facet_value %D, %impl_witness.baf [concrete] +// CHECK:STDOUT: %HasA2.facet: %HasA2.type = facet_value %D, (%impl_witness.baf) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] @@ -510,12 +510,12 @@ fn P(o: O) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%I.decl) [concrete] // CHECK:STDOUT: %I.type.395: type = fn_type @I.2 [concrete] // CHECK:STDOUT: %I.e74: %I.type.395 = struct_value () [concrete] -// CHECK:STDOUT: %HasI.facet: %HasI.type = facet_value %E, %impl_witness [concrete] +// CHECK:STDOUT: %HasI.facet: %HasI.type = facet_value %E, (%impl_witness) [concrete] // CHECK:STDOUT: %struct_type.base.0ff: type = struct_type {.base: %B} [concrete] // CHECK:STDOUT: %complete_type.98e: = complete_type_witness %struct_type.base.0ff [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %.83f: type = fn_type_with_self_type %I.type.9bd, %HasI.facet [concrete] +// CHECK:STDOUT: %.52d: type = fn_type_with_self_type %I.type.9bd, %HasI.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -619,11 +619,11 @@ fn P(o: O) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %E.ref.loc20: type = name_ref E, file.%E.decl [concrete = constants.%E] // CHECK:STDOUT: %I.ref.loc20: %HasI.assoc_type = name_ref I, @HasI.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc20: %.83f = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%I.e74] +// CHECK:STDOUT: %impl.elem0.loc20: %.52d = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%I.e74] // CHECK:STDOUT: %I.call.loc20: init %empty_tuple.type = call %impl.elem0.loc20() // CHECK:STDOUT: %e.ref.loc21: %E = name_ref e, %e // CHECK:STDOUT: %I.ref.loc21: %HasI.assoc_type = name_ref I, @HasI.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc21: %.83f = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%I.e74] +// CHECK:STDOUT: %impl.elem0.loc21: %.52d = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%I.e74] // CHECK:STDOUT: %I.call.loc21: init %empty_tuple.type = call %impl.elem0.loc21() // CHECK:STDOUT: %E.ref.loc22: type = name_ref E, file.%E.decl [concrete = constants.%E] // CHECK:STDOUT: %J.ref.loc22: %J.type = name_ref J, @B.%J.decl [concrete = constants.%J] @@ -657,7 +657,7 @@ fn P(o: O) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%K.decl) [concrete] // CHECK:STDOUT: %K.type.bc2: type = fn_type @K.3 [concrete] // CHECK:STDOUT: %K.bd6: %K.type.bc2 = struct_value () [concrete] -// CHECK:STDOUT: %HasK.facet: %HasK.type = facet_value %L, %impl_witness [concrete] +// CHECK:STDOUT: %HasK.facet: %HasK.type = facet_value %L, (%impl_witness) [concrete] // CHECK:STDOUT: %struct_type.base.b1e: type = struct_type {.base: %Base} [concrete] // CHECK:STDOUT: %complete_type.15c: = complete_type_witness %struct_type.base.b1e [concrete] // CHECK:STDOUT: %M.type: type = fn_type @M [concrete] @@ -797,11 +797,11 @@ fn P(o: O) { // CHECK:STDOUT: %impl_witness.982: = impl_witness (@impl.968.%N.decl) [concrete] // CHECK:STDOUT: %N.type.ffc: type = fn_type @N.4 [concrete] // CHECK:STDOUT: %N.4f5: %N.type.ffc = struct_value () [concrete] -// CHECK:STDOUT: %HasN1.facet: %HasN1.type = facet_value %O, %impl_witness.982 [concrete] +// CHECK:STDOUT: %HasN1.facet: %HasN1.type = facet_value %O, (%impl_witness.982) [concrete] // CHECK:STDOUT: %impl_witness.599: = impl_witness (@impl.117.%N.decl) [concrete] // CHECK:STDOUT: %N.type.8af: type = fn_type @N.5 [concrete] // CHECK:STDOUT: %N.308: %N.type.8af = struct_value () [concrete] -// CHECK:STDOUT: %HasN2.facet: %HasN2.type = facet_value %O, %impl_witness.599 [concrete] +// CHECK:STDOUT: %HasN2.facet: %HasN2.type = facet_value %O, (%impl_witness.599) [concrete] // CHECK:STDOUT: %N.type.8b4: type = fn_type @N.6 [concrete] // CHECK:STDOUT: %N.cc3: %N.type.8b4 = struct_value () [concrete] // CHECK:STDOUT: %struct_type.base.9c6: type = struct_type {.base: %NBase} [concrete] diff --git a/toolchain/check/testdata/impl/no_prelude/basic.carbon b/toolchain/check/testdata/impl/no_prelude/basic.carbon index 699bf59164df..a7078de4bae4 100644 --- a/toolchain/check/testdata/impl/no_prelude/basic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/basic.carbon @@ -33,7 +33,7 @@ impl C as Simple { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.f9e: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.f50: %F.type.f9e = struct_value () [concrete] -// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Simple.facet: %Simple.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/impl/no_prelude/compound.carbon b/toolchain/check/testdata/impl/no_prelude/compound.carbon index 24ad6a5a679b..ea2abfac9e7d 100644 --- a/toolchain/check/testdata/impl/no_prelude/compound.carbon +++ b/toolchain/check/testdata/impl/no_prelude/compound.carbon @@ -224,10 +224,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F1.decl) [concrete] // CHECK:STDOUT: %F1.type.d4a: type = fn_type @F1.2 [concrete] // CHECK:STDOUT: %F1.c75: %F1.type.d4a = struct_value () [concrete] -// CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value %struct_type.a, %impl_witness [concrete] +// CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value %struct_type.a, (%impl_witness) [concrete] // CHECK:STDOUT: %NonInstanceCall1.type: type = fn_type @NonInstanceCall1 [concrete] // CHECK:STDOUT: %NonInstanceCall1: %NonInstanceCall1.type = struct_value () [concrete] -// CHECK:STDOUT: %.a93: type = fn_type_with_self_type %F1.type.163, %NonInstance1.facet [concrete] +// CHECK:STDOUT: %.971: type = fn_type_with_self_type %F1.type.163, %NonInstance1.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -281,10 +281,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [concrete = constants.%struct_type.a] // CHECK:STDOUT: %NonInstance1.ref: type = name_ref NonInstance1, file.%NonInstance1.decl [concrete = constants.%NonInstance1.type] // CHECK:STDOUT: %F1.ref: %NonInstance1.assoc_type = name_ref F1, @NonInstance1.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value constants.%struct_type.a, constants.%impl_witness [concrete = constants.%NonInstance1.facet] +// CHECK:STDOUT: %NonInstance1.facet: %NonInstance1.type = facet_value constants.%struct_type.a, (constants.%impl_witness) [concrete = constants.%NonInstance1.facet] // CHECK:STDOUT: %.loc12_11: %NonInstance1.type = converted %struct_type.a, %NonInstance1.facet [concrete = constants.%NonInstance1.facet] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc12_11 [concrete = constants.%impl_witness] -// CHECK:STDOUT: %impl.elem0: %.a93 = impl_witness_access %as_wit, element0 [concrete = constants.%F1.c75] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc12_11, element0 [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl.elem0: %.971 = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%F1.c75] // CHECK:STDOUT: %F1.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -307,7 +307,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F2.decl) [concrete] // CHECK:STDOUT: %F2.type.1ec: type = fn_type @F2.2 [concrete] // CHECK:STDOUT: %F2.941: %F2.type.1ec = struct_value () [concrete] -// CHECK:STDOUT: %NonInstance2.facet: %NonInstance2.type = facet_value %struct_type.b, %impl_witness [concrete] +// CHECK:STDOUT: %NonInstance2.facet: %NonInstance2.type = facet_value %struct_type.b, (%impl_witness) [concrete] // CHECK:STDOUT: %NonInstanceCall2.type: type = fn_type @NonInstanceCall2 [concrete] // CHECK:STDOUT: %NonInstanceCall2: %NonInstanceCall2.type = struct_value () [concrete] // CHECK:STDOUT: %Dest: type = bind_symbolic_name Dest, 0 [symbolic] @@ -483,7 +483,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F3.decl) [concrete] // CHECK:STDOUT: %F3.type.1c2: type = fn_type @F3.2 [concrete] // CHECK:STDOUT: %F3.1d3: %F3.type.1c2 = struct_value () [concrete] -// CHECK:STDOUT: %NonInstance3.facet: %NonInstance3.type = facet_value %struct_type.c, %impl_witness [concrete] +// CHECK:STDOUT: %NonInstance3.facet: %NonInstance3.type = facet_value %struct_type.c, (%impl_witness) [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %struct_type.c [concrete] // CHECK:STDOUT: %NonInstanceCallIndirect.type: type = fn_type @NonInstanceCallIndirect [concrete] // CHECK:STDOUT: %NonInstanceCallIndirect: %NonInstanceCallIndirect.type = struct_value () [concrete] @@ -663,10 +663,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%G1.decl) [concrete] // CHECK:STDOUT: %G1.type.c50: type = fn_type @G1.2 [concrete] // CHECK:STDOUT: %G1.fee: %G1.type.c50 = struct_value () [concrete] -// CHECK:STDOUT: %Instance1.facet: %Instance1.type = facet_value %struct_type.d, %impl_witness [concrete] +// CHECK:STDOUT: %Instance1.facet: %Instance1.type = facet_value %struct_type.d, (%impl_witness) [concrete] // CHECK:STDOUT: %InstanceCall.type: type = fn_type @InstanceCall [concrete] // CHECK:STDOUT: %InstanceCall: %InstanceCall.type = struct_value () [concrete] -// CHECK:STDOUT: %.4d6: type = fn_type_with_self_type %G1.type.cde, %Instance1.facet [concrete] +// CHECK:STDOUT: %.dfe: type = fn_type_with_self_type %G1.type.cde, %Instance1.facet [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %struct_type.d [concrete] // CHECK:STDOUT: %InstanceCallIndirect.type: type = fn_type @InstanceCallIndirect [concrete] // CHECK:STDOUT: %InstanceCallIndirect: %InstanceCallIndirect.type = struct_value () [concrete] @@ -769,7 +769,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %n.ref: %struct_type.d = name_ref n, %n // CHECK:STDOUT: %Instance1.ref: type = name_ref Instance1, file.%Instance1.decl [concrete = constants.%Instance1.type] // CHECK:STDOUT: %G1.ref: %Instance1.assoc_type = name_ref G1, @Instance1.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.4d6 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G1.fee] +// CHECK:STDOUT: %impl.elem0: %.dfe = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G1.fee] // CHECK:STDOUT: %bound_method: = bound_method %n.ref, %impl.elem0 // CHECK:STDOUT: %G1.call: init %empty_tuple.type = call %bound_method(%n.ref) // CHECK:STDOUT: return @@ -781,7 +781,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Instance1.ref: type = name_ref Instance1, file.%Instance1.decl [concrete = constants.%Instance1.type] // CHECK:STDOUT: %G1.ref: %Instance1.assoc_type = name_ref G1, @Instance1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.loc16_4.1: ref %struct_type.d = deref %p.ref -// CHECK:STDOUT: %impl.elem0: %.4d6 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G1.fee] +// CHECK:STDOUT: %impl.elem0: %.dfe = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G1.fee] // CHECK:STDOUT: %bound_method: = bound_method %.loc16_4.1, %impl.elem0 // CHECK:STDOUT: %.loc16_4.2: ref %empty_tuple.type = struct_access %.loc16_4.1, element0 // CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] @@ -817,7 +817,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%G2.decl) [concrete] // CHECK:STDOUT: %G2.type.50c: type = fn_type @G2.2 [concrete] // CHECK:STDOUT: %G2.707: %G2.type.50c = struct_value () [concrete] -// CHECK:STDOUT: %Instance2.facet: %Instance2.type = facet_value %struct_type.e, %impl_witness [concrete] +// CHECK:STDOUT: %Instance2.facet: %Instance2.type = facet_value %struct_type.e, (%impl_witness) [concrete] // CHECK:STDOUT: %InstanceCallFail.type: type = fn_type @InstanceCallFail [concrete] // CHECK:STDOUT: %InstanceCallFail: %InstanceCallFail.type = struct_value () [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/no_prelude/fail_extend_impl_scope.carbon b/toolchain/check/testdata/impl/no_prelude/fail_extend_impl_scope.carbon index cfcf7951264a..c8f208773e97 100644 --- a/toolchain/check/testdata/impl/no_prelude/fail_extend_impl_scope.carbon +++ b/toolchain/check/testdata/impl/no_prelude/fail_extend_impl_scope.carbon @@ -162,13 +162,13 @@ fn F() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.c94.%Zero.decl) [concrete] // CHECK:STDOUT: %Zero.type.e33: type = fn_type @Zero.3 [concrete] // CHECK:STDOUT: %Zero.dec: %Zero.type.e33 = struct_value () [concrete] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, %impl_witness [concrete] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] -// CHECK:STDOUT: %.c37: type = fn_type_with_self_type %Zero.type.822, %Z.facet [concrete] +// CHECK:STDOUT: %.728: type = fn_type_with_self_type %Zero.type.822, %Z.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -264,7 +264,7 @@ fn F() { // CHECK:STDOUT: %.loc32_5.4: ref %Point = temporary %.loc32_5.2, %.loc32_5.3 // CHECK:STDOUT: %.loc32_7: ref %Point = converted %.loc32_5.1, %.loc32_5.4 // CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.c37 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Zero.dec] +// CHECK:STDOUT: %impl.elem0: %.728 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Zero.dec] // CHECK:STDOUT: %Zero.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/no_prelude/fail_impl_as_scope.carbon b/toolchain/check/testdata/impl/no_prelude/fail_impl_as_scope.carbon index 11aacf8c9198..31e8fec6c919 100644 --- a/toolchain/check/testdata/impl/no_prelude/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/no_prelude/fail_impl_as_scope.carbon @@ -231,14 +231,14 @@ class X { // CHECK:STDOUT: %Zero.dec: %Zero.type.e33 = struct_value () [concrete] // CHECK:STDOUT: %Method.type.2ed: type = fn_type @Method.3 [concrete] // CHECK:STDOUT: %Method.2c2: %Method.type.2ed = struct_value () [concrete] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, %impl_witness [concrete] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %Point, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.c03: type = fn_type_with_self_type %Zero.type.822, %Z.facet [concrete] +// CHECK:STDOUT: %.071: type = fn_type_with_self_type %Zero.type.822, %Z.facet [concrete] // CHECK:STDOUT: %Point.val: %Point = struct_value () [concrete] -// CHECK:STDOUT: %.6a1: type = fn_type_with_self_type %Method.type.f12, %Z.facet [concrete] +// CHECK:STDOUT: %.2c0: type = fn_type_with_self_type %Method.type.f12, %Z.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -391,10 +391,10 @@ class X { // CHECK:STDOUT: %Point.ref.loc35: type = name_ref Point, file.%Point.decl [concrete = constants.%Point] // CHECK:STDOUT: %Z.ref.loc35: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %Zero.ref: %Z.assoc_type = name_ref Zero, @Z.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%Point, constants.%impl_witness [concrete = constants.%Z.facet] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value constants.%Point, (constants.%impl_witness) [concrete = constants.%Z.facet] // CHECK:STDOUT: %.loc35: %Z.type = converted %Point.ref.loc35, %Z.facet [concrete = constants.%Z.facet] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc35 [concrete = constants.%impl_witness] -// CHECK:STDOUT: %impl.elem0: %.c03 = impl_witness_access %as_wit, element0 [concrete = constants.%Zero.dec] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc35, element0 [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl.elem0: %.071 = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%Zero.dec] // CHECK:STDOUT: %Zero.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: %.loc36_5.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %Point.ref.loc36: type = name_ref Point, file.%Point.decl [concrete = constants.%Point] @@ -404,7 +404,7 @@ class X { // CHECK:STDOUT: %.loc36_7.1: ref %Point = converted %.loc36_5.1, %.loc36_5.4 // CHECK:STDOUT: %Z.ref.loc36: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %Method.ref: %Z.assoc_type = name_ref Method, @Z.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1: %.6a1 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%Method.2c2] +// CHECK:STDOUT: %impl.elem1: %.2c0 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%Method.2c2] // CHECK:STDOUT: %bound_method: = bound_method %.loc36_7.1, %impl.elem1 // CHECK:STDOUT: %.loc36_7.2: %Point = bind_value %.loc36_7.1 // CHECK:STDOUT: %Method.call: init %empty_tuple.type = call %bound_method(%.loc36_7.2) @@ -461,7 +461,7 @@ class X { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.3b4.%B.decl) [concrete] // CHECK:STDOUT: %B.type.d47: type = fn_type @B.2 [concrete] // CHECK:STDOUT: %B.4af: %B.type.d47 = struct_value () [concrete] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %X, %impl_witness [concrete] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %X, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon b/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon index f954cc04e198..6f51ac164e94 100644 --- a/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon +++ b/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon @@ -188,9 +188,9 @@ impl CD as IF where .F = 0 { // 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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%empty_struct_type) [concrete] @@ -210,8 +210,8 @@ impl CD as IF where .F = 0 { // 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: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc5_14: type = where_expr %.Self [concrete = constants.%I_where.type] { @@ -256,9 +256,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %I2.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I2.facet: %I2.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I2.facet: %I2.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %I2_where.type: type = facet_type <@I2 where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%empty_struct_type) [concrete] @@ -278,8 +278,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T2.ref.loc5: %I2.assoc_type = name_ref T2, @T2.%assoc0 [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_21: type = converted %.Self.ref.loc5, %.Self.as_type.loc5 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc5: = facet_access_witness %.Self.ref.loc5 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc5: type = impl_witness_access %.Self.as_wit.loc5, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc5: = facet_access_witness %.Self.ref.loc5, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc5: type = impl_witness_access %.Self.as_wit.iface0.loc5, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_28.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc5_28.2: type = converted %.loc5_28.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc5_15: type = where_expr %.Self.1 [concrete = constants.%I2_where.type] { @@ -296,8 +296,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T2.ref.loc6: %I2.assoc_type = name_ref T2, @T2.%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_21: type = converted %.Self.ref.loc6, %.Self.as_type.loc6 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc6: = facet_access_witness %.Self.ref.loc6 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc6: type = impl_witness_access %.Self.as_wit.loc6, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc6: = facet_access_witness %.Self.ref.loc6, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc6: type = impl_witness_access %.Self.as_wit.iface0.loc6, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_28.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc6_28.2: type = converted %.loc6_28.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc6_15: type = where_expr %.Self.2 [concrete = constants.%I2_where.type] { @@ -342,9 +342,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %impl_witness.85b: = impl_witness () [concrete] // CHECK:STDOUT: %.Self: %I3.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I3.facet: %I3.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I3.facet: %I3.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %I3_where.type: type = facet_type <@I3 where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness.6de: = impl_witness (%empty_struct_type) [concrete] @@ -361,7 +361,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I3.ref: type = name_ref I3, file.%I3.decl [concrete = constants.%I3.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc9: = impl_witness () [concrete = constants.%impl_witness.85b] -// CHECK:STDOUT: impl_decl @impl.add [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.2b6 [concrete] {} { // CHECK:STDOUT: %.loc10_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_7.2: type = converted %.loc10_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %I3.ref: type = name_ref I3, file.%I3.decl [concrete = constants.%I3.type] @@ -370,8 +370,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, @T3.%assoc0 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_28.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc10_28.2: type = converted %.loc10_28.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc10_15: type = where_expr %.Self [concrete = constants.%I3_where.type] { @@ -399,7 +399,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.b46: %.loc9_7.2 as %I3.ref; // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.add: %.loc10_7.2 as %.loc10_15 { +// CHECK:STDOUT: impl @impl.2b6: %.loc10_7.2 as %.loc10_15 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness.loc10 // CHECK:STDOUT: } @@ -418,13 +418,13 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %J_where.type.800: type = facet_type <@J where %impl.elem0 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %J_where.type.5f6: type = facet_type <@J where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness.6de: = impl_witness (%empty_struct_type) [concrete] -// CHECK:STDOUT: %J_where.type.25a: type = facet_type <@J where %impl.elem0 = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %J_where.type.143: type = facet_type <@J where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %impl_witness.2a6: = impl_witness (%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -433,7 +433,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: .J = %J.decl // CHECK:STDOUT: } // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} -// CHECK:STDOUT: impl_decl @impl.2d9 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.8c7 [concrete] {} { // CHECK:STDOUT: %.loc9_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_7.2: type = converted %.loc9_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] @@ -442,16 +442,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] -// CHECK:STDOUT: %.loc9_14: type = where_expr %.Self [concrete = constants.%J_where.type.800] { +// CHECK:STDOUT: %.loc9_14: type = where_expr %.Self [concrete = constants.%J_where.type.5f6] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc9_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc9: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] -// CHECK:STDOUT: impl_decl @impl.bd6 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.6a8 [concrete] {} { // CHECK:STDOUT: %.loc10_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_7.2: type = converted %.loc10_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] @@ -460,11 +460,11 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] -// CHECK:STDOUT: %.loc10_14: type = where_expr %.Self [concrete = constants.%J_where.type.25a] { +// CHECK:STDOUT: %.loc10_14: type = where_expr %.Self [concrete = constants.%J_where.type.143] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc10_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -487,9 +487,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: assoc_const U:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.2d9: %.loc9_7.2 as %.loc9_14; +// CHECK:STDOUT: impl @impl.8c7: %.loc9_7.2 as %.loc9_14; // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.bd6: %.loc10_7.2 as %.loc10_14 { +// CHECK:STDOUT: impl @impl.6a8: %.loc10_7.2 as %.loc10_14 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness.loc10 // CHECK:STDOUT: } @@ -510,13 +510,13 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %I4.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I4.facet: %I4.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit, element1 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I4.facet: %I4.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0, element1 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_struct_type} [concrete] -// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit, element2 [symbolic_self] +// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.iface0, element2 [symbolic_self] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %empty_struct_type} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -538,15 +538,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T4.ref: %I4.assoc_type = name_ref T4, @T4.%assoc0 [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_wit.loc17_21: = facet_access_witness %.Self.ref.loc17_21 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.loc17_21, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc17_21: = facet_access_witness %.Self.ref.loc17_21, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.loc17_21, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD1.ref: = name_ref BAD1, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc17_36: %I4.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T5.ref: %I4.assoc_type = name_ref T5, @T5.%assoc1 [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_wit.loc17_36: = facet_access_witness %.Self.ref.loc17_36 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.loc17_36, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc17_36: = facet_access_witness %.Self.ref.loc17_36, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.loc17_36, 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] @@ -554,8 +554,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T6.ref: %I4.assoc_type = name_ref T6, @T6.%assoc2 [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_wit.loc17_55: = facet_access_witness %.Self.ref.loc17_55 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.loc17_55, element2 [symbolic_self = constants.%impl.elem2] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc17_55: = facet_access_witness %.Self.ref.loc17_55, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.iface0.loc17_55, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD2.ref: = name_ref BAD2, [concrete = ] // CHECK:STDOUT: %.loc17_15: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, @@ -572,8 +572,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T4.ref: %I4.assoc_type = name_ref T4, @T4.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc31_21: type = facet_access_type %.Self.ref.loc31_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc31_21: type = converted %.Self.ref.loc31_21, %.Self.as_type.loc31_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc31_21: = facet_access_witness %.Self.ref.loc31_21 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.loc31_21, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc31_21: = facet_access_witness %.Self.ref.loc31_21, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.loc31_21, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc31_33.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc31_33.2: type = converted %.loc31_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] @@ -581,15 +581,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T5.ref: %I4.assoc_type = name_ref T5, @T5.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type.loc31_40: type = facet_access_type %.Self.ref.loc31_40 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc31_40: type = converted %.Self.ref.loc31_40, %.Self.as_type.loc31_40 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc31_40: = facet_access_witness %.Self.ref.loc31_40 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.loc31_40, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc31_40: = facet_access_witness %.Self.ref.loc31_40, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.loc31_40, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %BAD3.ref: = name_ref BAD3, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc31_55: %I4.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T6.ref: %I4.assoc_type = name_ref T6, @T6.%assoc2 [concrete = constants.%assoc2] // CHECK:STDOUT: %.Self.as_type.loc31_55: type = facet_access_type %.Self.ref.loc31_55 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc31_55: type = converted %.Self.ref.loc31_55, %.Self.as_type.loc31_55 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc31_55: = facet_access_witness %.Self.ref.loc31_55 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.loc31_55, element2 [symbolic_self = constants.%impl.elem2] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc31_55: = facet_access_witness %.Self.ref.loc31_55, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.iface0.loc31_55, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD4.ref: = name_ref BAD4, [concrete = ] // CHECK:STDOUT: %.loc31_15: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %struct_type.b @@ -660,9 +660,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %K.facet: %K.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %K.facet: %K.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %K_where.type: type = facet_type <@K where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness.6de: = impl_witness (%empty_struct_type) [concrete] @@ -674,7 +674,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: .K = %K.decl // CHECK:STDOUT: } // CHECK:STDOUT: %K.decl: type = interface_decl @K [concrete = constants.%K.type] {} {} -// CHECK:STDOUT: impl_decl @impl.138 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.a6a [concrete] {} { // CHECK:STDOUT: %.loc5_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc5_7.2: type = converted %.loc5_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %K.ref: type = name_ref K, file.%K.decl [concrete = constants.%K.type] @@ -683,8 +683,8 @@ impl CD as IF where .F = 0 { // 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: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc5_14: type = where_expr %.Self [concrete = constants.%K_where.type] { @@ -716,7 +716,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: assoc_const V:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.138: %.loc5_7.2 as %.loc5_14; +// CHECK:STDOUT: impl @impl.a6a: %.loc5_7.2 as %.loc5_14; // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.4b0: %.loc17_7.2 as %K.ref { // CHECK:STDOUT: !members: @@ -737,9 +737,9 @@ impl CD as IF where .F = 0 { // 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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %L.facet: %L.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %L.facet: %L.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %L_where.type: type = facet_type <@L where %impl.elem0 = %empty_tuple.type and %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness () [concrete] @@ -759,16 +759,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %W.ref.loc9_20: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_20: type = facet_access_type %.Self.ref.loc9_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_20: type = converted %.Self.ref.loc9_20, %.Self.as_type.loc9_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_20: = facet_access_witness %.Self.ref.loc9_20 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc9_20: type = impl_witness_access %.Self.as_wit.loc9_20, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_20: = facet_access_witness %.Self.ref.loc9_20, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc9_20: type = impl_witness_access %.Self.as_wit.iface0.loc9_20, 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] // CHECK:STDOUT: %.Self.ref.loc9_32: %L.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %W.ref.loc9_32: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_32: type = facet_access_type %.Self.ref.loc9_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_32: type = converted %.Self.ref.loc9_32, %.Self.as_type.loc9_32 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_32: = facet_access_witness %.Self.ref.loc9_32 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc9_32: type = impl_witness_access %.Self.as_wit.loc9_32, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_32: = facet_access_witness %.Self.ref.loc9_32, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc9_32: type = impl_witness_access %.Self.as_wit.iface0.loc9_32, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_38.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_38.2: type = converted %.loc9_38.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc9_14: type = where_expr %.Self [concrete = constants.%L_where.type] { @@ -814,9 +814,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %L2.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -834,15 +834,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %W2.ref.loc9_21: %L2.assoc_type = name_ref W2, @W2.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_21: type = facet_access_type %.Self.ref.loc9_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_21: type = converted %.Self.ref.loc9_21, %.Self.as_type.loc9_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_21: = facet_access_witness %.Self.ref.loc9_21 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc9_21: type = impl_witness_access %.Self.as_wit.loc9_21, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_21: = facet_access_witness %.Self.ref.loc9_21, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc9_21: type = impl_witness_access %.Self.as_wit.iface0.loc9_21, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD5.ref: = name_ref BAD5, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc9_36: %L2.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %W2.ref.loc9_36: %L2.assoc_type = name_ref W2, @W2.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_36: type = facet_access_type %.Self.ref.loc9_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_36: type = converted %.Self.ref.loc9_36, %.Self.as_type.loc9_36 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_36: = facet_access_witness %.Self.ref.loc9_36 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc9_36: type = impl_witness_access %.Self.as_wit.loc9_36, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_36: = facet_access_witness %.Self.ref.loc9_36, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc9_36: type = impl_witness_access %.Self.as_wit.iface0.loc9_36, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_43.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_43.2: type = converted %.loc9_43.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc9_15: type = where_expr %.Self [concrete = ] { @@ -887,9 +887,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %L3.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %L3.facet: %L3.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %L3.facet: %L3.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -908,16 +908,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %W3.ref.loc9_21: %L3.assoc_type = name_ref W3, @W3.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_21: type = facet_access_type %.Self.ref.loc9_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_21: type = converted %.Self.ref.loc9_21, %.Self.as_type.loc9_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_21: = facet_access_witness %.Self.ref.loc9_21 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc9_21: type = impl_witness_access %.Self.as_wit.loc9_21, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_21: = facet_access_witness %.Self.ref.loc9_21, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc9_21: type = impl_witness_access %.Self.as_wit.iface0.loc9_21, 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] // CHECK:STDOUT: %.Self.ref.loc9_34: %L3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %W3.ref.loc9_34: %L3.assoc_type = name_ref W3, @W3.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_34: type = facet_access_type %.Self.ref.loc9_34 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_34: type = converted %.Self.ref.loc9_34, %.Self.as_type.loc9_34 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_34: = facet_access_witness %.Self.ref.loc9_34 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc9_34: type = impl_witness_access %.Self.as_wit.loc9_34, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_34: = facet_access_witness %.Self.ref.loc9_34, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc9_34: type = impl_witness_access %.Self.as_wit.iface0.loc9_34, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD6.ref: = name_ref BAD6, [concrete = ] // CHECK:STDOUT: %.loc9_15: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc9_21, %.loc9_28.2 @@ -961,9 +961,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %L4.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %L4.facet: %L4.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %L4.facet: %L4.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -982,15 +982,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %W4.ref.loc13_21: %L4.assoc_type = name_ref W4, @W4.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc13_21: type = facet_access_type %.Self.ref.loc13_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_21: type = converted %.Self.ref.loc13_21, %.Self.as_type.loc13_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc13_21: = facet_access_witness %.Self.ref.loc13_21 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc13_21: type = impl_witness_access %.Self.as_wit.loc13_21, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc13_21: = facet_access_witness %.Self.ref.loc13_21, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc13_21: type = impl_witness_access %.Self.as_wit.iface0.loc13_21, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD7.ref: = name_ref BAD7, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc13_36: %L4.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %W4.ref.loc13_36: %L4.assoc_type = name_ref W4, @W4.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc13_36: type = facet_access_type %.Self.ref.loc13_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_36: type = converted %.Self.ref.loc13_36, %.Self.as_type.loc13_36 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc13_36: = facet_access_witness %.Self.ref.loc13_36 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc13_36: type = impl_witness_access %.Self.as_wit.loc13_36, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc13_36: = facet_access_witness %.Self.ref.loc13_36, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc13_36: type = impl_witness_access %.Self.as_wit.iface0.loc13_36, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD8.ref: = name_ref BAD8, [concrete = ] // CHECK:STDOUT: %.loc13_15: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc13_21, @@ -1034,9 +1034,9 @@ impl CD as IF where .F = 0 { // 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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %M.facet: %M.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %M.facet: %M.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %M_where.type: type = facet_type <@M where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%empty_struct_type) [concrete] @@ -1056,16 +1056,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %X.ref.loc5_20: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc5_20: type = facet_access_type %.Self.ref.loc5_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref.loc5_20, %.Self.as_type.loc5_20 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc5_20: = facet_access_witness %.Self.ref.loc5_20 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc5_20: type = impl_witness_access %.Self.as_wit.loc5_20, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc5_20: = facet_access_witness %.Self.ref.loc5_20, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc5_20: type = impl_witness_access %.Self.as_wit.iface0.loc5_20, 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] // CHECK:STDOUT: %.Self.ref.loc5_32: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %X.ref.loc5_32: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc5_32: type = facet_access_type %.Self.ref.loc5_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc5_32: type = converted %.Self.ref.loc5_32, %.Self.as_type.loc5_32 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc5_32: = facet_access_witness %.Self.ref.loc5_32 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc5_32: type = impl_witness_access %.Self.as_wit.loc5_32, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc5_32: = facet_access_witness %.Self.ref.loc5_32, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc5_32: type = impl_witness_access %.Self.as_wit.iface0.loc5_32, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_38.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc5_38.2: type = converted %.loc5_38.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc5_14: type = where_expr %.Self [concrete = constants.%M_where.type] { @@ -1113,9 +1113,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %assoc0: %N.assoc_type = assoc_entity element0, @N.%Y [concrete] // CHECK:STDOUT: %.Self: %N.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %N.facet: %N.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %N.facet: %N.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.a.225 = struct_value (%empty_struct) [concrete] // CHECK:STDOUT: %N_where.type: type = facet_type <@N where %impl.elem0 = %struct> [concrete] @@ -1136,8 +1136,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Y.ref: %N.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc7_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc7_32: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc7_33.1: %struct_type.a.225 = struct_literal (%.loc7_32) // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] @@ -1190,16 +1190,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %.Self: %IF.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %IF.facet.3a2: %IF.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %.99d: type = fn_type_with_self_type %F.type.496, %IF.facet.3a2 [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.99d = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %IF.facet.94f: %IF.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %.bf5: type = fn_type_with_self_type %F.type.496, %IF.facet.94f [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.bf5 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %IF_where.type: type = facet_type <@IF where %impl.elem0 = %int_0> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] -// CHECK:STDOUT: %F.type.064: type = fn_type @F.2 [concrete] -// CHECK:STDOUT: %F.822: %F.type.064 = struct_value () [concrete] -// CHECK:STDOUT: %IF.facet.b37: %IF.type = facet_value %CD, %impl_witness [concrete] +// CHECK:STDOUT: %F.type.2b5: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.479: %F.type.2b5 = struct_value () [concrete] +// CHECK:STDOUT: %IF.facet.0db: %IF.type = facet_value %CD, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1217,8 +1217,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %F.ref: %IF.assoc_type = name_ref F, @IF.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %.99d = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %.bf5 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc11_15: type = where_expr %.Self [concrete = constants.%IF_where.type] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %int_0 @@ -1239,7 +1239,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %CD.ref as %.loc11_15 { -// CHECK:STDOUT: %F.decl: %F.type.064 = fn_decl @F.2 [concrete = constants.%F.822] {} {} +// CHECK:STDOUT: %F.decl: %F.type.2b5 = fn_decl @F.2 [concrete = constants.%F.479] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -1265,5 +1265,5 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%IF.facet.b37) {} +// CHECK:STDOUT: specific @F.1(constants.%IF.facet.0db) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/impl_cycle.carbon b/toolchain/check/testdata/impl/no_prelude/impl_cycle.carbon index 8c7b3e262387..4e940ffa2e6f 100644 --- a/toolchain/check/testdata/impl/no_prelude/impl_cycle.carbon +++ b/toolchain/check/testdata/impl/no_prelude/impl_cycle.carbon @@ -21,6 +21,14 @@ interface ImplicitAs(Dest:! type) { fn Convert[self: Self]() -> Dest; } +interface BitAnd { + fn Op[self: Self](other: Self) -> Self; +} + +impl forall [T:! type] T as BitAnd { + fn Op[self: Self](other: Self) -> Self = "type.and"; +} + // --- fail_impl_simple_cycle.carbon library "[[@TEST_NAME]]"; @@ -46,7 +54,7 @@ fn F() { ({} as Point) as (Point as Z); } -// --- fail_impl_simple_where_cycle.carbon +// --- todo_fail_impl_simple_where_cycle.carbon library "[[@TEST_NAME]]"; import Core; @@ -62,10 +70,6 @@ class Point { fn F() { // TODO: A cycle should be found in the `impl forall T as Z` above. - // CHECK:STDERR: fail_impl_simple_where_cycle.carbon:[[@LINE+4]]:21: error: semantics TODO: `impl lookup for a FacetType with no interface (using `where .Self impls ...` instead?)` [SemanticsTodo] - // CHECK:STDERR: ({} as Point) as (Point as Z); - // CHECK:STDERR: ^~~~~~~~~~ - // CHECK:STDERR: ({} as Point) as (Point as Z); } @@ -78,10 +82,6 @@ interface Z {} interface Y {} // This creates a dependency cycle with itself. -// CHECK:STDERR: fail_impl_simple_two_interfaces.carbon:[[@LINE+4]]:18: error: name `Core.BitAnd` implicitly referenced here, but not found [CoreNameNotFound] -// CHECK:STDERR: impl forall [T:! Z & Y] T as Z {} -// CHECK:STDERR: ^~~~~ -// CHECK:STDERR: impl forall [T:! Z & Y] T as Z {} class Point { @@ -90,6 +90,13 @@ class Point { fn F() { // TODO: A cycle should be found in the `impl forall T as Z` above. + // CHECK:STDERR: fail_impl_simple_two_interfaces.carbon:[[@LINE+7]]:21: error: cycle found in search for impl of `Z & Y` for type `Point` [ImplLookupCycle] + // CHECK:STDERR: ({} as Point) as (Point as Z); + // CHECK:STDERR: ^~~~~~~~~~ + // CHECK:STDERR: fail_impl_simple_two_interfaces.carbon:[[@LINE-11]]:1: note: determining if this impl clause matches [ImplLookupCycleNote] + // CHECK:STDERR: impl forall [T:! Z & Y] T as Z {} + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: ({} as Point) as (Point as Z); } diff --git a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon index 1be38ab0d9d2..dcbc5551164e 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon @@ -102,10 +102,10 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Op.type.883: type = fn_type @Op.2, @impl(%N) [symbolic] // CHECK:STDOUT: %Op.8bc: %Op.type.883 = struct_value () [symbolic] // CHECK:STDOUT: %require_complete.fc7: = require_complete_type %MyInt [symbolic] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, %impl_witness [symbolic] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, (%impl_witness) [symbolic] // CHECK:STDOUT: %Double.type: type = fn_type @Double [concrete] // CHECK:STDOUT: %Double: %Double.type = struct_value () [concrete] -// CHECK:STDOUT: %.dcc: type = fn_type_with_self_type %Op.type.31b, %Add.facet [symbolic] +// CHECK:STDOUT: %.9b8: type = fn_type_with_self_type %Op.type.31b, %Add.facet [symbolic] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.8bc, @Op.2(%N) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -327,8 +327,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @Double.%MyInt.loc19_39.2 (%MyInt) [symbolic = %require_complete (constants.%require_complete.fc7)] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl), @impl(%N.loc19_11.2) [symbolic = %impl_witness (constants.%impl_witness)] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt.loc19_39.2, %impl_witness [symbolic = %Add.facet (constants.%Add.facet)] -// CHECK:STDOUT: %.loc20_11: type = fn_type_with_self_type constants.%Op.type.31b, %Add.facet [symbolic = %.loc20_11 (constants.%.dcc)] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt.loc19_39.2, (%impl_witness) [symbolic = %Add.facet (constants.%Add.facet)] +// CHECK:STDOUT: %.loc20_11: type = fn_type_with_self_type constants.%Op.type.31b, %Add.facet [symbolic = %.loc20_11 (constants.%.9b8)] // CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N.loc19_11.2) [symbolic = %Op.type (constants.%Op.type.883)] // CHECK:STDOUT: %Op: @Double.%Op.type (%Op.type.883) = struct_value () [symbolic = %Op (constants.%Op.8bc)] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op, @Op.2(%N.loc19_11.2) [symbolic = %Op.specific_fn (constants.%Op.specific_fn)] @@ -338,7 +338,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %x.ref.loc20_10: @Double.%MyInt.loc19_39.2 (%MyInt) = name_ref x, %x // CHECK:STDOUT: %Add.ref: type = name_ref Add, file.%Add.decl [concrete = constants.%Add.type] // CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, @Add.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: @Double.%.loc20_11 (%.dcc) = impl_witness_access constants.%impl_witness, element0 [symbolic = %Op (constants.%Op.8bc)] +// CHECK:STDOUT: %impl.elem0: @Double.%.loc20_11 (%.9b8) = impl_witness_access constants.%impl_witness, element0 [symbolic = %Op (constants.%Op.8bc)] // CHECK:STDOUT: %bound_method.loc20_11: = bound_method %x.ref.loc20_10, %impl.elem0 // CHECK:STDOUT: %x.ref.loc20_21: @Double.%MyInt.loc19_39.2 (%MyInt) = name_ref x, %x // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(constants.%N) [symbolic = %Op.specific_fn (constants.%Op.specific_fn)] @@ -439,21 +439,21 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %impl_witness.7e5be3.1: = impl_witness (imports.%Main.import_ref.464c51.1), @impl(%N) [symbolic] // CHECK:STDOUT: %Op.type.5a6: type = fn_type @Op.2, @impl(%int_64) [concrete] // CHECK:STDOUT: %Op.cf9: %Op.type.5a6 = struct_value () [concrete] -// CHECK:STDOUT: %Add.facet.3ca: %Add.type = facet_value %MyInt.f30, %impl_witness.8d6 [concrete] -// CHECK:STDOUT: %.3ca: type = fn_type_with_self_type %Op.type.31b, %Add.facet.3ca [concrete] +// CHECK:STDOUT: %Add.facet.8db: %Add.type = facet_value %MyInt.f30, (%impl_witness.8d6) [concrete] +// CHECK:STDOUT: %.1ca: type = fn_type_with_self_type %Op.type.31b, %Add.facet.8db [concrete] // CHECK:STDOUT: %Op.specific_fn.16a: = specific_function %Op.cf9, @Op.2(%int_64) [concrete] // CHECK:STDOUT: %CallImportedDouble.type: type = fn_type @CallImportedDouble [concrete] // CHECK:STDOUT: %CallImportedDouble: %CallImportedDouble.type = struct_value () [concrete] // CHECK:STDOUT: %Double.type: type = fn_type @Double [concrete] // CHECK:STDOUT: %Double: %Double.type = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.7e5be3.2: = impl_witness (imports.%Main.import_ref.464c51.2), @impl(%N) [symbolic] -// CHECK:STDOUT: %Add.facet.9a8: %Add.type = facet_value %MyInt.09f, %impl_witness.7e5be3.2 [symbolic] -// CHECK:STDOUT: %.72d: type = fn_type_with_self_type %Op.type.31b, %Add.facet.9a8 [symbolic] +// CHECK:STDOUT: %Add.facet.afa: %Add.type = facet_value %MyInt.09f, (%impl_witness.7e5be3.2) [symbolic] +// CHECK:STDOUT: %.207: type = fn_type_with_self_type %Op.type.31b, %Add.facet.afa [symbolic] // CHECK:STDOUT: %Op.specific_fn.6c0: = specific_function %Op.8bc, @Op.2(%N) [symbolic] // CHECK:STDOUT: %Double.specific_fn: = specific_function %Double, @Double(%int_64) [concrete] // CHECK:STDOUT: %impl_witness.bb3: = impl_witness (imports.%Main.import_ref.464c51.2), @impl(%int_64) [concrete] -// CHECK:STDOUT: %Add.facet.22c: %Add.type = facet_value %MyInt.f30, %impl_witness.bb3 [concrete] -// CHECK:STDOUT: %.41c: type = fn_type_with_self_type %Op.type.31b, %Add.facet.22c [concrete] +// CHECK:STDOUT: %Add.facet.287: %Add.type = facet_value %MyInt.f30, (%impl_witness.bb3) [concrete] +// CHECK:STDOUT: %.fc5: type = fn_type_with_self_type %Op.type.31b, %Add.facet.287 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -576,7 +576,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %x.ref.loc9_10: %MyInt.f30 = name_ref x, %x // CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%Main.Add [concrete = constants.%Add.type] // CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, imports.%Main.import_ref.db7 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.3ca = impl_witness_access constants.%impl_witness.8d6, element0 [concrete = constants.%Op.cf9] +// CHECK:STDOUT: %impl.elem0: %.1ca = impl_witness_access constants.%impl_witness.8d6, element0 [concrete = constants.%Op.cf9] // CHECK:STDOUT: %bound_method.loc9_11: = bound_method %x.ref.loc9_10, %impl.elem0 // CHECK:STDOUT: %x.ref.loc9_21: %MyInt.f30 = name_ref x, %x // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Op.2(constants.%int_64) [concrete = constants.%Op.specific_fn.16a] @@ -622,8 +622,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @Double.%MyInt (%MyInt.09f) [symbolic = %require_complete (constants.%require_complete.fc7)] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.464c51.2), @impl(%N) [symbolic = %impl_witness (constants.%impl_witness.7e5be3.2)] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, %impl_witness [symbolic = %Add.facet (constants.%Add.facet.9a8)] -// CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Op.type.31b, %Add.facet [symbolic = %.1 (constants.%.72d)] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %MyInt, (%impl_witness) [symbolic = %Add.facet (constants.%Add.facet.afa)] +// CHECK:STDOUT: %.1: type = fn_type_with_self_type constants.%Op.type.31b, %Add.facet [symbolic = %.1 (constants.%.207)] // CHECK:STDOUT: %Op.type: type = fn_type @Op.2, @impl(%N) [symbolic = %Op.type (constants.%Op.type.883)] // CHECK:STDOUT: %Op: @Double.%Op.type (%Op.type.883) = struct_value () [symbolic = %Op (constants.%Op.8bc)] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op, @Op.2(%N) [symbolic = %Op.specific_fn (constants.%Op.specific_fn.6c0)] @@ -720,8 +720,8 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.4a1 // CHECK:STDOUT: %impl_witness => constants.%impl_witness.bb3 -// CHECK:STDOUT: %Add.facet => constants.%Add.facet.22c -// CHECK:STDOUT: %.1 => constants.%.41c +// CHECK:STDOUT: %Add.facet => constants.%Add.facet.287 +// CHECK:STDOUT: %.1 => constants.%.fc5 // CHECK:STDOUT: %Op.type => constants.%Op.type.5a6 // CHECK:STDOUT: %Op => constants.%Op.cf9 // CHECK:STDOUT: %Op.specific_fn => constants.%Op.specific_fn.16a diff --git a/toolchain/check/testdata/impl/no_prelude/import_compound.carbon b/toolchain/check/testdata/impl/no_prelude/import_compound.carbon index 53413378f737..cfbf9096becd 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_compound.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_compound.carbon @@ -212,7 +212,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %impl_witness.e97: = impl_witness (@impl.c58.%F.decl) [concrete] // CHECK:STDOUT: %F.type.042: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.db4: %F.type.042 = struct_value () [concrete] -// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, %impl_witness.e97 [concrete] +// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%impl_witness.e97) [concrete] // CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete] // CHECK:STDOUT: %Self.cf8: %Instance.type = bind_symbolic_name Self, 0 [symbolic] // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cf8 [symbolic] @@ -223,7 +223,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %impl_witness.114: = impl_witness (@impl.477.%G.decl) [concrete] // CHECK:STDOUT: %G.type.0c0: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.484: %G.type.0c0 = struct_value () [concrete] -// CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, %impl_witness.114 [concrete] +// CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%impl_witness.114) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -355,8 +355,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %F.4e4: %F.type.9e5 = struct_value () [concrete] // CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.2d7) [concrete] -// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, %impl_witness [concrete] -// CHECK:STDOUT: %.582: type = fn_type_with_self_type %F.type.9e5, %NonInstance.facet [concrete] +// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value %struct_type.i, (%impl_witness) [concrete] +// CHECK:STDOUT: %.1bc: type = fn_type_with_self_type %F.type.9e5, %NonInstance.facet [concrete] // CHECK:STDOUT: %F.type.042: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.db4: %F.type.042 = struct_value () [concrete] // CHECK:STDOUT: } @@ -420,10 +420,10 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %struct_type.i: type = struct_type {.i: %empty_tuple.type} [concrete = constants.%struct_type.i] // CHECK:STDOUT: %NonInstance.ref: type = name_ref NonInstance, imports.%Main.NonInstance [concrete = constants.%NonInstance.type] // CHECK:STDOUT: %F.ref: %NonInstance.assoc_type = name_ref F, imports.%Main.import_ref.69f [concrete = constants.%assoc0] -// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value constants.%struct_type.i, constants.%impl_witness [concrete = constants.%NonInstance.facet] +// CHECK:STDOUT: %NonInstance.facet: %NonInstance.type = facet_value constants.%struct_type.i, (constants.%impl_witness) [concrete = constants.%NonInstance.facet] // CHECK:STDOUT: %.loc6_11: %NonInstance.type = converted %struct_type.i, %NonInstance.facet [concrete = constants.%NonInstance.facet] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc6_11 [concrete = constants.%impl_witness] -// CHECK:STDOUT: %impl.elem0: %.582 = impl_witness_access %as_wit, element0 [concrete = constants.%F.db4] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc6_11, element0 [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl.elem0: %.1bc = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%F.db4] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %impl.elem0() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -815,8 +815,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cf8 [symbolic] // CHECK:STDOUT: %NonInstance.type: type = facet_type <@NonInstance> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.373) [concrete] -// CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, %impl_witness [concrete] -// CHECK:STDOUT: %.6d8: type = fn_type_with_self_type %G.type.1e1, %Instance.facet [concrete] +// CHECK:STDOUT: %Instance.facet: %Instance.type = facet_value %struct_type.i, (%impl_witness) [concrete] +// CHECK:STDOUT: %.59b: type = fn_type_with_self_type %G.type.1e1, %Instance.facet [concrete] // CHECK:STDOUT: %G.type.0c0: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.484: %G.type.0c0 = struct_value () [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %struct_type.i [concrete] @@ -908,7 +908,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %n.ref: %struct_type.i = name_ref n, %n // CHECK:STDOUT: %Instance.ref: type = name_ref Instance, imports.%Main.Instance [concrete = constants.%Instance.type] // CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.7cb [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.6d8 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.484] +// CHECK:STDOUT: %impl.elem0: %.59b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.484] // CHECK:STDOUT: %bound_method: = bound_method %n.ref, %impl.elem0 // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %bound_method(%n.ref) // CHECK:STDOUT: return @@ -929,7 +929,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Instance.ref: type = name_ref Instance, imports.%Main.Instance [concrete = constants.%Instance.type] // CHECK:STDOUT: %G.ref: %Instance.assoc_type = name_ref G, imports.%Main.import_ref.7cb [concrete = constants.%assoc0] // CHECK:STDOUT: %.loc10_4.1: ref %struct_type.i = deref %p.ref -// CHECK:STDOUT: %impl.elem0: %.6d8 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.484] +// CHECK:STDOUT: %impl.elem0: %.59b = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.484] // CHECK:STDOUT: %bound_method: = bound_method %.loc10_4.1, %impl.elem0 // CHECK:STDOUT: %.loc10_4.2: ref %empty_tuple.type = struct_access %.loc10_4.1, element0 // CHECK:STDOUT: %tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon index fd237fbb955c..179fe37a5782 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon @@ -46,7 +46,7 @@ fn G(c: C) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.f36: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.4c3: %F.type.f36 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } @@ -122,8 +122,8 @@ fn G(c: C) { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e03 [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.f6d) [concrete] // CHECK:STDOUT: %F.type.cf0: type = fn_type @F.1 [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [concrete] -// CHECK:STDOUT: %.8b3: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%impl_witness) [concrete] +// CHECK:STDOUT: %.5cc: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] // CHECK:STDOUT: %F.type.f36: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.4c3: %F.type.f36 = struct_value () [concrete] // CHECK:STDOUT: } @@ -185,11 +185,11 @@ fn G(c: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref.loc7: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %F.ref.loc7: %I.assoc_type = name_ref F, imports.%Main.import_ref.bcb [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc7: %.8b3 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.4c3] +// CHECK:STDOUT: %impl.elem0.loc7: %.5cc = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.4c3] // CHECK:STDOUT: %F.call.loc7: init %empty_tuple.type = call %impl.elem0.loc7() // CHECK:STDOUT: %c.ref: %C = name_ref c, %c // CHECK:STDOUT: %F.ref.loc8: %I.assoc_type = name_ref F, imports.%Main.import_ref.bcb [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc8: %.8b3 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.4c3] +// CHECK:STDOUT: %impl.elem0.loc8: %.5cc = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.4c3] // CHECK:STDOUT: %F.call.loc8: init %empty_tuple.type = call %impl.elem0.loc8() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon b/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon index c52bc4132f23..670d64b250e8 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon @@ -321,9 +321,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%empty_struct_type) [concrete] // CHECK:STDOUT: } @@ -355,8 +355,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc5_14: type = where_expr %.Self [concrete = constants.%I_where.type] { @@ -406,9 +406,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%empty_struct_type) [concrete] // CHECK:STDOUT: } @@ -440,8 +440,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref.loc5: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit.loc5: = facet_access_witness %.Self.ref.loc5 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc5: type = impl_witness_access %.Self.as_wit.loc5, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc5: = facet_access_witness %.Self.ref.loc5, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc5: type = impl_witness_access %.Self.as_wit.iface0.loc5, 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] // CHECK:STDOUT: %.loc5_14: type = where_expr %.Self.1 [concrete = constants.%I_where.type] { @@ -457,8 +457,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref.loc6: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit.loc6: = facet_access_witness %.Self.ref.loc6 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc6: type = impl_witness_access %.Self.as_wit.loc6, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc6: = facet_access_witness %.Self.ref.loc6, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc6: type = impl_witness_access %.Self.as_wit.iface0.loc6, 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: %.loc6_14: type = where_expr %.Self.2 [concrete = constants.%I_where.type] { @@ -508,9 +508,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness.6de: = impl_witness (%empty_struct_type) [concrete] // CHECK:STDOUT: } @@ -539,7 +539,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc9: = impl_witness () [concrete = constants.%impl_witness.85b] -// CHECK:STDOUT: impl_decl @impl.ec6 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.5ad [concrete] {} { // CHECK:STDOUT: %C3.ref: type = name_ref C3, file.%C3.decl [concrete = constants.%C3] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -547,8 +547,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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: %.loc10_14: type = where_expr %.Self [concrete = constants.%I_where.type] { @@ -571,7 +571,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.16e: %C3.ref as %I.ref; // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.ec6: %C3.ref as %.loc10_14 { +// CHECK:STDOUT: impl @impl.5ad: %C3.ref as %.loc10_14 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness.loc10 // CHECK:STDOUT: } @@ -601,12 +601,12 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] -// CHECK:STDOUT: %I_where.type.f5a: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] +// CHECK:STDOUT: %I_where.type.872: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness.6de: = impl_witness (%empty_struct_type) [concrete] -// CHECK:STDOUT: %I_where.type.05a: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %I_where.type.4fe: type = facet_type <@I where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %impl_witness.2a6: = impl_witness (%empty_tuple.type) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -629,7 +629,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %C4.decl: type = class_decl @C4 [concrete = constants.%C4] {} {} -// CHECK:STDOUT: impl_decl @impl.bbb [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.4d8 [concrete] {} { // CHECK:STDOUT: %C4.ref: type = name_ref C4, file.%C4.decl [concrete = constants.%C4] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -637,16 +637,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] -// CHECK:STDOUT: %.loc9_14: type = where_expr %.Self [concrete = constants.%I_where.type.f5a] { +// CHECK:STDOUT: %.loc9_14: type = where_expr %.Self [concrete = constants.%I_where.type.872] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc9_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc9: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] -// CHECK:STDOUT: impl_decl @impl.265 [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.2de [concrete] {} { // CHECK:STDOUT: %C4.ref: type = name_ref C4, file.%C4.decl [concrete = constants.%C4] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -654,11 +654,11 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] -// CHECK:STDOUT: %.loc10_14: type = where_expr %.Self [concrete = constants.%I_where.type.05a] { +// CHECK:STDOUT: %.loc10_14: type = where_expr %.Self [concrete = constants.%I_where.type.4fe] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc10_26.2 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -676,9 +676,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: assoc_const T:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.bbb: %C4.ref as %.loc9_14; +// CHECK:STDOUT: impl @impl.4d8: %C4.ref as %.loc9_14; // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.265: %C4.ref as %.loc10_14 { +// CHECK:STDOUT: impl @impl.2de: %C4.ref as %.loc10_14 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness.loc10 // CHECK:STDOUT: } @@ -707,14 +707,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I3.assoc_type: type = assoc_entity_type %I3.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I3.facet: %I3.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I3.facet: %I3.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %assoc1: %I3.assoc_type = assoc_entity element1, imports.%Main.import_ref.e26 [concrete] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit, element1 [symbolic_self] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0, element1 [symbolic_self] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_struct_type} [concrete] // CHECK:STDOUT: %assoc2: %I3.assoc_type = assoc_entity element2, imports.%Main.import_ref.e32 [concrete] -// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit, element2 [symbolic_self] +// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.iface0, element2 [symbolic_self] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %empty_struct_type} [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -755,15 +755,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.760 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc18_21: type = facet_access_type %.Self.ref.loc18_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc18_21: type = converted %.Self.ref.loc18_21, %.Self.as_type.loc18_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc18_21: = facet_access_witness %.Self.ref.loc18_21 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.loc18_21, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_21: = facet_access_witness %.Self.ref.loc18_21, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.loc18_21, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD1.ref: = name_ref BAD1, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc18_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.309 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type.loc18_36: type = facet_access_type %.Self.ref.loc18_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc18_36: type = converted %.Self.ref.loc18_36, %.Self.as_type.loc18_36 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc18_36: = facet_access_witness %.Self.ref.loc18_36 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.loc18_36, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_36: = facet_access_witness %.Self.ref.loc18_36, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.loc18_36, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc18_48.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc18_48.2: type = converted %.loc18_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] @@ -771,8 +771,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.5c5 [concrete = constants.%assoc2] // CHECK:STDOUT: %.Self.as_type.loc18_55: type = facet_access_type %.Self.ref.loc18_55 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc18_55: type = converted %.Self.ref.loc18_55, %.Self.as_type.loc18_55 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc18_55: = facet_access_witness %.Self.ref.loc18_55 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.loc18_55, element2 [symbolic_self = constants.%impl.elem2] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_55: = facet_access_witness %.Self.ref.loc18_55, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.iface0.loc18_55, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD2.ref: = name_ref BAD2, [concrete = ] // CHECK:STDOUT: %.loc18_15: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, @@ -788,8 +788,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.760 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc32_21: type = facet_access_type %.Self.ref.loc32_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc32_21: type = converted %.Self.ref.loc32_21, %.Self.as_type.loc32_21 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc32_21: = facet_access_witness %.Self.ref.loc32_21 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.loc32_21, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc32_21: = facet_access_witness %.Self.ref.loc32_21, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.loc32_21, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc32_33.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc32_33.2: type = converted %.loc32_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] @@ -797,15 +797,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.309 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type.loc32_40: type = facet_access_type %.Self.ref.loc32_40 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc32_40: type = converted %.Self.ref.loc32_40, %.Self.as_type.loc32_40 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc32_40: = facet_access_witness %.Self.ref.loc32_40 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.loc32_40, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc32_40: = facet_access_witness %.Self.ref.loc32_40, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.loc32_40, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %BAD3.ref: = name_ref BAD3, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc32_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.5c5 [concrete = constants.%assoc2] // CHECK:STDOUT: %.Self.as_type.loc32_55: type = facet_access_type %.Self.ref.loc32_55 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc32_55: type = converted %.Self.ref.loc32_55, %.Self.as_type.loc32_55 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc32_55: = facet_access_witness %.Self.ref.loc32_55 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.loc32_55, element2 [symbolic_self = constants.%impl.elem2] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc32_55: = facet_access_witness %.Self.ref.loc32_55, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem2: type = impl_witness_access %.Self.as_wit.iface0.loc32_55, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD4.ref: = name_ref BAD4, [concrete = ] // CHECK:STDOUT: %.loc32_15: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %struct_type.b @@ -875,9 +875,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness.6de: = impl_witness (%empty_struct_type) [concrete] // CHECK:STDOUT: %impl_witness.85b: = impl_witness () [concrete] @@ -902,7 +902,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: %C6.decl: type = class_decl @C6 [concrete = constants.%C6] {} {} -// CHECK:STDOUT: impl_decl @impl.bee [concrete] {} { +// CHECK:STDOUT: impl_decl @impl.e9b [concrete] {} { // CHECK:STDOUT: %C6.ref: type = name_ref C6, file.%C6.decl [concrete = constants.%C6] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] @@ -910,8 +910,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc5_14: type = where_expr %.Self [concrete = constants.%I_where.type] { @@ -937,7 +937,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: assoc_const T:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl.bee: %C6.ref as %.loc5_14; +// CHECK:STDOUT: impl @impl.e9b: %C6.ref as %.loc5_14; // CHECK:STDOUT: // CHECK:STDOUT: impl @impl.482: %C6.ref as %I.ref { // CHECK:STDOUT: !members: @@ -969,9 +969,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type and %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness () [concrete] // CHECK:STDOUT: } @@ -1003,16 +1003,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit.loc10_20: = facet_access_witness %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access %.Self.as_wit.loc10_20, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_20: = facet_access_witness %.Self.ref.loc10_20, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access %.Self.as_wit.iface0.loc10_20, 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.585 [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_wit.loc10_32: = facet_access_witness %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access %.Self.as_wit.loc10_32, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_32: = facet_access_witness %.Self.ref.loc10_32, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access %.Self.as_wit.iface0.loc10_32, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_38.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_38.2: type = converted %.loc10_38.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc10_14: type = where_expr %.Self [concrete = constants.%I_where.type] { @@ -1064,9 +1064,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1097,15 +1097,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit.loc10_20: = facet_access_witness %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access %.Self.as_wit.loc10_20, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_20: = facet_access_witness %.Self.ref.loc10_20, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access %.Self.as_wit.iface0.loc10_20, 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.585 [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_wit.loc10_34: = facet_access_witness %.Self.ref.loc10_34 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_34: type = impl_witness_access %.Self.as_wit.loc10_34, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_34: = facet_access_witness %.Self.ref.loc10_34, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_34: type = impl_witness_access %.Self.as_wit.iface0.loc10_34, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_40.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_40.2: type = converted %.loc10_40.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc10_14: type = where_expr %.Self [concrete = ] { @@ -1155,9 +1155,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1188,16 +1188,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit.loc10_20: = facet_access_witness %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access %.Self.as_wit.loc10_20, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_20: = facet_access_witness %.Self.ref.loc10_20, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access %.Self.as_wit.iface0.loc10_20, 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.585 [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_wit.loc10_32: = facet_access_witness %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access %.Self.as_wit.loc10_32, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_32: = facet_access_witness %.Self.ref.loc10_32, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access %.Self.as_wit.iface0.loc10_32, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD6.ref: = name_ref BAD6, [concrete = ] // CHECK:STDOUT: %.loc10_14: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc10_20, %.loc10_26.2 @@ -1246,9 +1246,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1280,15 +1280,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref.loc14_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit.loc14_20: = facet_access_witness %.Self.ref.loc14_20 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc14_20: type = impl_witness_access %.Self.as_wit.loc14_20, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc14_20: = facet_access_witness %.Self.ref.loc14_20, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc14_20: type = impl_witness_access %.Self.as_wit.iface0.loc14_20, 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.585 [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_wit.loc14_34: = facet_access_witness %.Self.ref.loc14_34 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc14_34: type = impl_witness_access %.Self.as_wit.loc14_34, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc14_34: = facet_access_witness %.Self.ref.loc14_34, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc14_34: type = impl_witness_access %.Self.as_wit.iface0.loc14_34, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD8.ref: = name_ref BAD8, [concrete = ] // CHECK:STDOUT: %.loc14_14: type = where_expr %.Self [concrete = ] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc14_20, @@ -1337,9 +1337,9 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type %I.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (%empty_struct_type) [concrete] // CHECK:STDOUT: } @@ -1371,16 +1371,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %T.ref.loc6_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.585 [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_wit.loc6_20: = facet_access_witness %.Self.ref.loc6_20 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc6_20: type = impl_witness_access %.Self.as_wit.loc6_20, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc6_20: = facet_access_witness %.Self.ref.loc6_20, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc6_20: type = impl_witness_access %.Self.as_wit.iface0.loc6_20, 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.585 [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_wit.loc6_32: = facet_access_witness %.Self.ref.loc6_32 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc6_32: type = impl_witness_access %.Self.as_wit.loc6_32, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc6_32: = facet_access_witness %.Self.ref.loc6_32, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc6_32: type = impl_witness_access %.Self.as_wit.iface0.loc6_32, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_38.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc6_38.2: type = converted %.loc6_38.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc6_14: type = where_expr %.Self [concrete = constants.%I_where.type] { @@ -1431,10 +1431,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %NonType.assoc_type: type = assoc_entity_type %NonType.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] // CHECK:STDOUT: %struct_type.a.225: type = struct_type {.a: %empty_struct_type} [concrete] -// CHECK:STDOUT: %NonType.facet: %NonType.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %NonType.facet: %NonType.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %struct: %struct_type.a.225 = struct_value (%empty_struct) [concrete] // CHECK:STDOUT: %NonType_where.type: type = facet_type <@NonType where %impl.elem0 = %struct> [concrete] @@ -1468,8 +1468,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Y.ref: %NonType.assoc_type = name_ref Y, imports.%Main.import_ref.99f [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access %.Self.as_wit.iface0, 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) // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] @@ -1558,18 +1558,18 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %IF.assoc_type: type = assoc_entity_type %IF.type [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.as_wit: = facet_access_witness %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] // CHECK:STDOUT: %F.type.496: type = fn_type @F.1 [concrete] // CHECK:STDOUT: %F.1de: %F.type.496 = struct_value () [concrete] -// CHECK:STDOUT: %IF.facet.3a2: %IF.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %.99d: type = fn_type_with_self_type %F.type.496, %IF.facet.3a2 [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.99d = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %IF.facet.94f: %IF.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %.bf5: type = fn_type_with_self_type %F.type.496, %IF.facet.94f [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.bf5 = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %IF_where.type: type = facet_type <@IF where %impl.elem0 = %int_0> [concrete] // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] -// CHECK:STDOUT: %F.type.064: type = fn_type @F.2 [concrete] -// CHECK:STDOUT: %F.822: %F.type.064 = struct_value () [concrete] -// CHECK:STDOUT: %IF.facet.b37: %IF.type = facet_value %CD, %impl_witness [concrete] +// CHECK:STDOUT: %F.type.2b5: type = fn_type @F.2 [concrete] +// CHECK:STDOUT: %F.479: %F.type.2b5 = struct_value () [concrete] +// CHECK:STDOUT: %IF.facet.0db: %IF.type = facet_value %CD, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1595,8 +1595,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %F.ref: %IF.assoc_type = name_ref F, imports.%Main.import_ref.f61 [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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %.99d = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %.bf5 = impl_witness_access %.Self.as_wit.iface0, 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] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %int_0 @@ -1613,7 +1613,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @impl: %CD.ref as %.loc10_15 { -// CHECK:STDOUT: %F.decl: %F.type.064 = fn_decl @F.2 [concrete = constants.%F.822] {} {} +// CHECK:STDOUT: %F.decl: %F.type.2b5 = fn_decl @F.2 [concrete = constants.%F.479] {} {} // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .F = %F.decl @@ -1639,5 +1639,5 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: specific @F.1(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%IF.facet.b37) {} +// CHECK:STDOUT: specific @F.1(constants.%IF.facet.0db) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/import_self.carbon b/toolchain/check/testdata/impl/no_prelude/import_self.carbon index 828c52020fc7..6540b0043644 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_self.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_self.carbon @@ -111,13 +111,13 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.adf: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.489: %Op.type.adf = struct_value () [concrete] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %empty_tuple.type, %impl_witness [concrete] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %empty_tuple.type, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type %Add.type [concrete] // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, imports.%Main.import_ref.5a3 [concrete] -// CHECK:STDOUT: %.a26: type = fn_type_with_self_type %Op.type.31b, %Add.facet [concrete] +// CHECK:STDOUT: %.9ca: type = fn_type_with_self_type %Op.type.31b, %Add.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -219,7 +219,7 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, %x // CHECK:STDOUT: %Add.ref: type = name_ref Add, imports.%Main.Add [concrete = constants.%Add.type] // CHECK:STDOUT: %Op.ref: %Add.assoc_type = name_ref Op, imports.%Main.import_ref.db7 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.a26 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.489] +// CHECK:STDOUT: %impl.elem0: %.9ca = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.489] // CHECK:STDOUT: %bound_method: = bound_method %x.ref, %impl.elem0 // CHECK:STDOUT: %y.ref: %empty_tuple.type = name_ref y, %y // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%x.ref, %y.ref) diff --git a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon index 4e966e232de1..bbe6673d4f8d 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon @@ -68,7 +68,7 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.40c: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.071: %F.type.40c = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%impl_witness) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -206,8 +206,8 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %impl_witness.bbe: = impl_witness (imports.%Main.import_ref.c57), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.4a4: type = fn_type @F.2, @impl(%empty_struct_type) [concrete] // CHECK:STDOUT: %F.9e6: %F.type.4a4 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.7a7, %impl_witness.02b [concrete] -// CHECK:STDOUT: %.c06: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C.7a7, (%impl_witness.02b) [concrete] +// CHECK:STDOUT: %.dd0: type = fn_type_with_self_type %F.type.cf0, %I.facet [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F.9e6, @F.2(%empty_struct_type) [concrete] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] @@ -273,10 +273,10 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %C: type = class_type @C, @C(constants.%empty_struct_type) [concrete = constants.%C.7a7] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, imports.%Main.import_ref.bcb [concrete = constants.%assoc0] -// CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C.7a7, constants.%impl_witness.02b [concrete = constants.%I.facet] +// CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C.7a7, (constants.%impl_witness.02b) [concrete = constants.%I.facet] // CHECK:STDOUT: %.loc25_16: %I.type = converted %C, %I.facet [concrete = constants.%I.facet] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc25_16 [concrete = constants.%impl_witness.02b] -// CHECK:STDOUT: %impl.elem0: %.c06 = impl_witness_access %as_wit, element0 [concrete = constants.%F.9e6] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc25_16, element0 [concrete = constants.%impl_witness.02b] +// CHECK:STDOUT: %impl.elem0: %.dd0 = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%F.9e6] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @F.2(constants.%empty_struct_type) [concrete = constants.%F.specific_fn] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %specific_fn() // CHECK:STDOUT: %.loc25_23.1: ref %empty_tuple.type = temporary_storage diff --git a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon index 7d305f3d2cd9..192d932451fc 100644 --- a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon +++ b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon @@ -228,10 +228,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.4b4: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.40d: %Op.type.4b4 = struct_value () [concrete] -// CHECK:STDOUT: %Action.facet: %Action.type.cb0 = facet_value %A, %impl_witness [concrete] +// CHECK:STDOUT: %Action.facet: %Action.type.cb0 = facet_value %A, (%impl_witness) [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %.920: type = fn_type_with_self_type %Op.type.54d, %Action.facet [concrete] +// CHECK:STDOUT: %.dde: type = fn_type_with_self_type %Op.type.54d, %Action.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -364,7 +364,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.cb0] // CHECK:STDOUT: %.loc16: %Action.assoc_type.827 = specific_constant @Action.%assoc0.loc5_22.1, @Action(constants.%B) [concrete = constants.%assoc0.035] // CHECK:STDOUT: %Op.ref: %Action.assoc_type.827 = name_ref Op, %.loc16 [concrete = constants.%assoc0.035] -// CHECK:STDOUT: %impl.elem0: %.920 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.40d] +// CHECK:STDOUT: %impl.elem0: %.dde = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.40d] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%a.ref) // CHECK:STDOUT: return @@ -434,8 +434,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %assoc0.905ab9.2: %Action.assoc_type.8f9 = assoc_entity element0, imports.%Main.import_ref.0e3753.2 [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.d0b) [concrete] -// CHECK:STDOUT: %Action.facet: %Action.type.cb0 = facet_value %A, %impl_witness [concrete] -// CHECK:STDOUT: %.ae7: type = fn_type_with_self_type %Op.type.54d, %Action.facet [concrete] +// CHECK:STDOUT: %Action.facet: %Action.type.cb0 = facet_value %A, (%impl_witness) [concrete] +// CHECK:STDOUT: %.584: type = fn_type_with_self_type %Op.type.54d, %Action.facet [concrete] // CHECK:STDOUT: %Op.type.4b4: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.40d: %Op.type.4b4 = struct_value () [concrete] // CHECK:STDOUT: } @@ -541,7 +541,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(constants.%B)> [concrete = constants.%Action.type.cb0] // CHECK:STDOUT: %.loc4: %Action.assoc_type.827 = specific_constant imports.%Main.import_ref.318, @Action(constants.%B) [concrete = constants.%assoc0.4cc] // CHECK:STDOUT: %Op.ref: %Action.assoc_type.827 = name_ref Op, %.loc4 [concrete = constants.%assoc0.4cc] -// CHECK:STDOUT: %impl.elem0: %.ae7 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.40d] +// CHECK:STDOUT: %impl.elem0: %.584 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.40d] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%a.ref) // CHECK:STDOUT: return @@ -801,7 +801,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Make.377: %Make.type.ec4 = struct_value () [concrete] // CHECK:STDOUT: %Method.type.af5: type = fn_type @Method.2 [concrete] // CHECK:STDOUT: %Method.3d4: %Method.type.af5 = struct_value () [concrete] -// CHECK:STDOUT: %Factory.facet: %Factory.type.a5d = facet_value %A, %impl_witness [concrete] +// CHECK:STDOUT: %Factory.facet: %Factory.type.a5d = facet_value %A, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1026,14 +1026,14 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %MakeB: %MakeB.type = struct_value () [concrete] // CHECK:STDOUT: %assoc0.35472f.2: %Factory.assoc_type.ca7 = assoc_entity element0, imports.%Main.import_ref.21018a.3 [symbolic] // CHECK:STDOUT: %impl_witness: = impl_witness (imports.%Main.import_ref.9ec, imports.%Main.import_ref.7dd) [concrete] -// CHECK:STDOUT: %Factory.facet: %Factory.type.a5d = facet_value %A, %impl_witness [concrete] -// CHECK:STDOUT: %.161: type = fn_type_with_self_type %Make.type.c59, %Factory.facet [concrete] +// CHECK:STDOUT: %Factory.facet: %Factory.type.a5d = facet_value %A, (%impl_witness) [concrete] +// CHECK:STDOUT: %.b98: type = fn_type_with_self_type %Make.type.c59, %Factory.facet [concrete] // CHECK:STDOUT: %Make.type.ec4: type = fn_type @Make.2 [concrete] // CHECK:STDOUT: %Make.377: %Make.type.ec4 = struct_value () [concrete] // CHECK:STDOUT: %InstanceB.type: type = fn_type @InstanceB [concrete] // CHECK:STDOUT: %InstanceB: %InstanceB.type = struct_value () [concrete] // CHECK:STDOUT: %assoc1.1fdf32.2: %Factory.assoc_type.ca7 = assoc_entity element1, imports.%Main.import_ref.46fc3c.2 [symbolic] -// CHECK:STDOUT: %.478: type = fn_type_with_self_type %Method.type.117, %Factory.facet [concrete] +// CHECK:STDOUT: %.ac0: type = fn_type_with_self_type %Method.type.117, %Factory.facet [concrete] // CHECK:STDOUT: %Method.type.af5: type = fn_type @Method.2 [concrete] // CHECK:STDOUT: %Method.3d4: %Method.type.af5 = struct_value () [concrete] // CHECK:STDOUT: } @@ -1166,10 +1166,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.a5d] // CHECK:STDOUT: %.loc5_23: %Factory.assoc_type.668 = specific_constant imports.%Main.import_ref.8d5, @Factory(constants.%B) [concrete = constants.%assoc0.228] // CHECK:STDOUT: %Make.ref: %Factory.assoc_type.668 = name_ref Make, %.loc5_23 [concrete = constants.%assoc0.228] -// CHECK:STDOUT: %Factory.facet: %Factory.type.a5d = facet_value constants.%A, constants.%impl_witness [concrete = constants.%Factory.facet] +// CHECK:STDOUT: %Factory.facet: %Factory.type.a5d = facet_value constants.%A, (constants.%impl_witness) [concrete = constants.%Factory.facet] // CHECK:STDOUT: %.loc5_11: %Factory.type.a5d = converted %A.ref, %Factory.facet [concrete = constants.%Factory.facet] -// CHECK:STDOUT: %as_wit: = facet_access_witness %.loc5_11 [concrete = constants.%impl_witness] -// CHECK:STDOUT: %impl.elem0: %.161 = impl_witness_access %as_wit, element0 [concrete = constants.%Make.377] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc5_11, element0 [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl.elem0: %.b98 = impl_witness_access %as_wit.iface0, element0 [concrete = constants.%Make.377] // CHECK:STDOUT: %.loc4: ref %B = splice_block %return {} // CHECK:STDOUT: %Make.call: init %B = call %impl.elem0() to %.loc4 // CHECK:STDOUT: return %Make.call to %return @@ -1185,7 +1185,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(constants.%B)> [concrete = constants.%Factory.type.a5d] // CHECK:STDOUT: %.loc8: %Factory.assoc_type.668 = specific_constant imports.%Main.import_ref.ff7, @Factory(constants.%B) [concrete = constants.%assoc1.51f] // CHECK:STDOUT: %Method.ref: %Factory.assoc_type.668 = name_ref Method, %.loc8 [concrete = constants.%assoc1.51f] -// CHECK:STDOUT: %impl.elem1: %.478 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%Method.3d4] +// CHECK:STDOUT: %impl.elem1: %.ac0 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%Method.3d4] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %.loc7: ref %B = splice_block %return {} // CHECK:STDOUT: %Method.call: init %B = call %bound_method(%a.ref) to %.loc7 diff --git a/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon b/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon index 2d829708d877..29680f2fb8e8 100644 --- a/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon +++ b/toolchain/check/testdata/impl/no_prelude/self_in_class.carbon @@ -39,7 +39,7 @@ class A { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Make.decl) [concrete] // CHECK:STDOUT: %Make.type.351: type = fn_type @Make.2 [concrete] // CHECK:STDOUT: %Make.b73: %Make.type.351 = struct_value () [concrete] -// CHECK:STDOUT: %DefaultConstructible.facet: %DefaultConstructible.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %DefaultConstructible.facet: %DefaultConstructible.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon index 9600f39c8c6d..6a22371bf782 100644 --- a/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon @@ -54,12 +54,12 @@ impl D as SelfNested { // CHECK:STDOUT: %impl_witness.9ff: = impl_witness (@impl.c4a.%F.decl) [concrete] // CHECK:STDOUT: %F.type.fc6: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.5e2: %F.type.fc6 = struct_value () [concrete] -// CHECK:STDOUT: %UseSelf.facet.e62: %UseSelf.type = facet_value %C, %impl_witness.9ff [concrete] +// CHECK:STDOUT: %UseSelf.facet.692: %UseSelf.type = facet_value %C, (%impl_witness.9ff) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.320: = impl_witness (@impl.659.%F.decl) [concrete] // CHECK:STDOUT: %F.type.0aa: type = fn_type @F.3 [concrete] // CHECK:STDOUT: %F.f71: %F.type.0aa = struct_value () [concrete] -// CHECK:STDOUT: %UseSelf.facet.848: %UseSelf.type = facet_value %D, %impl_witness.320 [concrete] +// CHECK:STDOUT: %UseSelf.facet.5ea: %UseSelf.type = facet_value %D, (%impl_witness.320) [concrete] // CHECK:STDOUT: %D.val: %D = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] // CHECK:STDOUT: %Self.2ff: %SelfNested.type = bind_symbolic_name Self, 0 [symbolic] @@ -78,14 +78,14 @@ impl D as SelfNested { // CHECK:STDOUT: %tuple.type.a17: type = tuple_type (%ptr.019, %struct_type.x.y.2f0) [concrete] // CHECK:STDOUT: %F.type.ef0: type = fn_type @F.5 [concrete] // CHECK:STDOUT: %F.9a9: %F.type.ef0 = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.f66: %SelfNested.type = facet_value %C, %impl_witness.f4e [concrete] +// CHECK:STDOUT: %SelfNested.facet.5ec: %SelfNested.type = facet_value %C, (%impl_witness.f4e) [concrete] // CHECK:STDOUT: %impl_witness.4b5: = impl_witness (@impl.82d.%F.decl) [concrete] // CHECK:STDOUT: %ptr.19c: type = ptr_type %D [concrete] // CHECK:STDOUT: %struct_type.x.y.527: type = struct_type {.x: %D, .y: %empty_tuple.type} [concrete] // CHECK:STDOUT: %tuple.type.a5f: type = tuple_type (%ptr.19c, %struct_type.x.y.527) [concrete] // CHECK:STDOUT: %F.type.a9d: type = fn_type @F.6 [concrete] // CHECK:STDOUT: %F.c41: %F.type.a9d = struct_value () [concrete] -// CHECK:STDOUT: %SelfNested.facet.2c0: %SelfNested.type = facet_value %D, %impl_witness.4b5 [concrete] +// CHECK:STDOUT: %SelfNested.facet.821: %SelfNested.type = facet_value %D, (%impl_witness.4b5) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -348,13 +348,13 @@ impl D as SelfNested { // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type.599 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.e62) { -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.e62 +// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.692) { +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.692 // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.848) { -// CHECK:STDOUT: %Self => constants.%UseSelf.facet.848 +// CHECK:STDOUT: specific @F.1(constants.%UseSelf.facet.5ea) { +// CHECK:STDOUT: %Self => constants.%UseSelf.facet.5ea // CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%D // CHECK:STDOUT: } // CHECK:STDOUT: @@ -366,16 +366,16 @@ impl D as SelfNested { // CHECK:STDOUT: %tuple.type => constants.%tuple.type.46b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.f66) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.f66 +// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.5ec) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.5ec // CHECK:STDOUT: %Self.as_type.loc28_16.1 => constants.%C // CHECK:STDOUT: %ptr.loc28_16.1 => constants.%ptr.019 // CHECK:STDOUT: %struct_type.x.y.loc28_36.1 => constants.%struct_type.x.y.2f0 // CHECK:STDOUT: %tuple.type => constants.%tuple.type.a17 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.2c0) { -// CHECK:STDOUT: %Self => constants.%SelfNested.facet.2c0 +// CHECK:STDOUT: specific @F.4(constants.%SelfNested.facet.821) { +// CHECK:STDOUT: %Self => constants.%SelfNested.facet.821 // CHECK:STDOUT: %Self.as_type.loc28_16.1 => constants.%D // CHECK:STDOUT: %ptr.loc28_16.1 => constants.%ptr.19c // CHECK:STDOUT: %struct_type.x.y.loc28_36.1 => constants.%struct_type.x.y.527 diff --git a/toolchain/check/testdata/impl/no_prelude/todo_impl_with_unrelated_fn.carbon b/toolchain/check/testdata/impl/no_prelude/todo_impl_with_unrelated_fn.carbon index f92a8c90fadb..3827ab2692dc 100644 --- a/toolchain/check/testdata/impl/no_prelude/todo_impl_with_unrelated_fn.carbon +++ b/toolchain/check/testdata/impl/no_prelude/todo_impl_with_unrelated_fn.carbon @@ -36,7 +36,7 @@ class X { // CHECK:STDOUT: %B.4af: %B.type.d47 = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %X, %impl_witness [concrete] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %X, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/array_element_access.carbon b/toolchain/check/testdata/index/array_element_access.carbon index 4d26848fbbb2..be6e2168ccec 100644 --- a/toolchain/check/testdata/index/array_element_access.carbon +++ b/toolchain/check/testdata/index/array_element_access.carbon @@ -29,8 +29,8 @@ var d: i32 = a[b]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -115,7 +115,7 @@ var d: i32 = a[b]; // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %int_24: Core.IntLiteral = int_value 24 [concrete = constants.%int_24.e3c] // CHECK:STDOUT: %.loc11_31.1: %tuple.type = tuple_literal (%int_12, %int_24) -// CHECK:STDOUT: %impl.elem0.loc11_31.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_31.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_31.1: = bound_method %int_12, %impl.elem0.loc11_31.1 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11_31.1: = specific_function %impl.elem0.loc11_31.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_31.2: = bound_method %int_12, %specific_fn.loc11_31.1 [concrete = constants.%bound_method.dae] @@ -124,7 +124,7 @@ var d: i32 = a[b]; // CHECK:STDOUT: %int_0.loc11: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc11_31.3: ref %i32 = array_index file.%a.var, %int_0.loc11 // CHECK:STDOUT: %.loc11_31.4: init %i32 = initialize_from %.loc11_31.2 to %.loc11_31.3 [concrete = constants.%int_12.1e1] -// CHECK:STDOUT: %impl.elem0.loc11_31.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_31.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_31.3: = bound_method %int_24, %impl.elem0.loc11_31.2 [concrete = constants.%Convert.bound.ef4] // CHECK:STDOUT: %specific_fn.loc11_31.2: = specific_function %impl.elem0.loc11_31.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_31.4: = bound_method %int_24, %specific_fn.loc11_31.2 [concrete = constants.%bound_method.477] @@ -137,7 +137,7 @@ var d: i32 = a[b]; // CHECK:STDOUT: %.loc11_1: init %array_type = converted %.loc11_31.1, %.loc11_31.8 [concrete = constants.%array] // CHECK:STDOUT: assign file.%a.var, %.loc11_1 // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_1.1: = bound_method %int_1.loc12, %impl.elem0.loc12 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_1.2: = bound_method %int_1.loc12, %specific_fn.loc12 [concrete = constants.%bound_method.9a1] @@ -148,7 +148,7 @@ var d: i32 = a[b]; // CHECK:STDOUT: %int_0.loc13: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc13: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_16.1: = bound_method %int_0.loc13, %impl.elem0.loc13 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_16.2: = bound_method %int_0.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/index/expr_category.carbon b/toolchain/check/testdata/index/expr_category.carbon index 8b145b161be3..909ea37f5950 100644 --- a/toolchain/check/testdata/index/expr_category.carbon +++ b/toolchain/check/testdata/index/expr_category.carbon @@ -48,8 +48,8 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -142,7 +142,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_2.loc14_30: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc14_33: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc14_34.1: %tuple.type = tuple_literal (%int_1.loc14_27, %int_2.loc14_30, %int_3.loc14_33) -// CHECK:STDOUT: %impl.elem0.loc14_34.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_34.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_34.1: = bound_method %int_1.loc14_27, %impl.elem0.loc14_34.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_34.1: = specific_function %impl.elem0.loc14_34.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_34.2: = bound_method %int_1.loc14_27, %specific_fn.loc14_34.1 [concrete = constants.%bound_method.9a1] @@ -151,7 +151,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc14: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc14_34.3: ref %i32 = array_index %a.var, %int_0.loc14 // CHECK:STDOUT: %.loc14_34.4: init %i32 = initialize_from %.loc14_34.2 to %.loc14_34.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_34.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_34.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_34.3: = bound_method %int_2.loc14_30, %impl.elem0.loc14_34.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_34.2: = specific_function %impl.elem0.loc14_34.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_34.4: = bound_method %int_2.loc14_30, %specific_fn.loc14_34.2 [concrete = constants.%bound_method.b92] @@ -160,7 +160,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_1.loc14_34: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc14_34.6: ref %i32 = array_index %a.var, %int_1.loc14_34 // CHECK:STDOUT: %.loc14_34.7: init %i32 = initialize_from %.loc14_34.5 to %.loc14_34.6 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc14_34.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_34.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_34.5: = bound_method %int_3.loc14_33, %impl.elem0.loc14_34.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc14_34.3: = specific_function %impl.elem0.loc14_34.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_34.6: = bound_method %int_3.loc14_33, %specific_fn.loc14_34.3 [concrete = constants.%bound_method.047] @@ -188,7 +188,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc17: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc17_22: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc17_22: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc17: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_21.1: = bound_method %int_0.loc17, %impl.elem0.loc17 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_21.2: = bound_method %int_0.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.b6e] @@ -208,7 +208,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc18: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc18: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc18_5: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_5: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_0.loc18, %impl.elem0.loc18_5 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc18_5: = specific_function %impl.elem0.loc18_5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_0.loc18, %specific_fn.loc18_5 [concrete = constants.%bound_method.b6e] @@ -217,7 +217,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc18_5.2: %i32 = converted %int_0.loc18, %.loc18_5.1 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc18_6: ref %i32 = array_index %a.ref.loc18, %.loc18_5.2 // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc18_8: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_8: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_8.1: = bound_method %int_4, %impl.elem0.loc18_8 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc18_8: = specific_function %impl.elem0.loc18_8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_8.2: = bound_method %int_4, %specific_fn.loc18_8 [concrete = constants.%bound_method.1da] @@ -238,7 +238,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_2.loc22_30: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3.loc22_33: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc22_34.1: %tuple.type = tuple_literal (%int_1.loc22_27, %int_2.loc22_30, %int_3.loc22_33) -// CHECK:STDOUT: %impl.elem0.loc22_34.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc22_34.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_34.1: = bound_method %int_1.loc22_27, %impl.elem0.loc22_34.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc22_34.1: = specific_function %impl.elem0.loc22_34.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_34.2: = bound_method %int_1.loc22_27, %specific_fn.loc22_34.1 [concrete = constants.%bound_method.9a1] @@ -247,7 +247,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc22: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc22_34.3: ref %i32 = array_index %a.var, %int_0.loc22 // CHECK:STDOUT: %.loc22_34.4: init %i32 = initialize_from %.loc22_34.2 to %.loc22_34.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc22_34.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc22_34.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_34.3: = bound_method %int_2.loc22_30, %impl.elem0.loc22_34.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc22_34.2: = specific_function %impl.elem0.loc22_34.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_34.4: = bound_method %int_2.loc22_30, %specific_fn.loc22_34.2 [concrete = constants.%bound_method.b92] @@ -256,7 +256,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_1.loc22_34: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %.loc22_34.6: ref %i32 = array_index %a.var, %int_1.loc22_34 // CHECK:STDOUT: %.loc22_34.7: init %i32 = initialize_from %.loc22_34.5 to %.loc22_34.6 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc22_34.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc22_34.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_34.5: = bound_method %int_3.loc22_33, %impl.elem0.loc22_34.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc22_34.3: = specific_function %impl.elem0.loc22_34.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_34.6: = bound_method %int_3.loc22_33, %specific_fn.loc22_34.3 [concrete = constants.%bound_method.047] @@ -279,7 +279,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc26: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc26: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc26: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc26: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc26: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_5.1: = bound_method %int_0.loc26, %impl.elem0.loc26 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_5.2: = bound_method %int_0.loc26, %specific_fn.loc26 [concrete = constants.%bound_method.b6e] @@ -291,7 +291,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc27: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc27: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc27: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc27: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc27: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_5.1: = bound_method %int_0.loc27, %impl.elem0.loc27 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_5.2: = bound_method %int_0.loc27, %specific_fn.loc27 [concrete = constants.%bound_method.b6e] @@ -308,7 +308,7 @@ fn ValueBinding(b: array(i32, 3)) { // CHECK:STDOUT: %.loc28_5.2: ref %array_type = temporary %.loc28_5.1, %F.call // CHECK:STDOUT: %int_32.loc28: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc28: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc28: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc28: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc28_7.1: = bound_method %int_0.loc28, %impl.elem0.loc28 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc28_7.2: = bound_method %int_0.loc28, %specific_fn.loc28 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/index/fail_array_large_index.carbon b/toolchain/check/testdata/index/fail_array_large_index.carbon index d1de80c4143a..f4f318152c74 100644 --- a/toolchain/check/testdata/index/fail_array_large_index.carbon +++ b/toolchain/check/testdata/index/fail_array_large_index.carbon @@ -37,8 +37,8 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -108,7 +108,7 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_28.1: %tuple.type = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0.loc11: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_28.1: = bound_method %int_12, %impl.elem0.loc11 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_28.2: = bound_method %int_12, %specific_fn.loc11 [concrete = constants.%bound_method.dae] @@ -124,7 +124,7 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc17: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc17: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc17: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_16.1: = bound_method %int_1, %impl.elem0.loc17 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_16.2: = bound_method %int_1, %specific_fn.loc17 [concrete = constants.%bound_method.9a1] @@ -138,7 +138,7 @@ var c: i32 = a[0x7FFF_FFFF]; // CHECK:STDOUT: %int_2147483647: Core.IntLiteral = int_value 2147483647 [concrete = constants.%int_2147483647.d89] // CHECK:STDOUT: %int_32.loc23: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc23: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc23: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc23: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_16.1: = bound_method %int_2147483647, %impl.elem0.loc23 [concrete = constants.%Convert.bound.f38] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_16.2: = bound_method %int_2147483647, %specific_fn.loc23 [concrete = constants.%bound_method.8e1] diff --git a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon index f275560a39c8..da533484df00 100644 --- a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon +++ b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon @@ -33,8 +33,8 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -87,7 +87,7 @@ var b: i32 = a[2.6]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_28.1: %tuple.type = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_28.1: = bound_method %int_12, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_28.2: = bound_method %int_12, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon index 3013b15769ce..2e062b8cbd1f 100644 --- a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon +++ b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon @@ -30,8 +30,8 @@ var b: i32 = a[1]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -86,7 +86,7 @@ var b: i32 = a[1]; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_28.1: %tuple.type = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0.loc11: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_28.1: = bound_method %int_12, %impl.elem0.loc11 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_28.2: = bound_method %int_12, %specific_fn.loc11 [concrete = constants.%bound_method.dae] @@ -102,7 +102,7 @@ var b: i32 = a[1]; // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // 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: %impl.elem0.loc16: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_16.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_16.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method.9a1] diff --git a/toolchain/check/testdata/index/fail_expr_category.carbon b/toolchain/check/testdata/index/fail_expr_category.carbon index 01bdbf64beda..c9c0e7ae18b9 100644 --- a/toolchain/check/testdata/index/fail_expr_category.carbon +++ b/toolchain/check/testdata/index/fail_expr_category.carbon @@ -55,8 +55,8 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -122,7 +122,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc19: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc19_22: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc19_22: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc19: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc19: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_21.1: = bound_method %int_0.loc19, %impl.elem0.loc19 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_21.2: = bound_method %int_0.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.b6e] @@ -144,7 +144,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %int_0.loc24: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc24: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc24_5: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc24_5: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc24_5.1: = bound_method %int_0.loc24, %impl.elem0.loc24_5 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc24_5: = specific_function %impl.elem0.loc24_5, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc24_5.2: = bound_method %int_0.loc24, %specific_fn.loc24_5 [concrete = constants.%bound_method.b6e] @@ -155,7 +155,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %.loc24_6.2: ref %i32 = array_index %.loc24_6.1, %.loc24_5.2 // CHECK:STDOUT: %.loc24_6.3: %i32 = bind_value %.loc24_6.2 // CHECK:STDOUT: %int_4.loc24: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc24_8: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc24_8: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc24_8.1: = bound_method %int_4.loc24, %impl.elem0.loc24_8 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc24_8: = specific_function %impl.elem0.loc24_8, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc24_8.2: = bound_method %int_4.loc24, %specific_fn.loc24_8 [concrete = constants.%bound_method.1da] @@ -174,7 +174,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %.loc32_21.2: ref %array_type = temporary %.loc32_21.1, %F.call.loc32 // CHECK:STDOUT: %int_32.loc32_24: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc32_24: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc32: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc32: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc32_23.1: = bound_method %int_0.loc32, %impl.elem0.loc32 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc32: = specific_function %impl.elem0.loc32, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc32_23.2: = bound_method %int_0.loc32, %specific_fn.loc32 [concrete = constants.%bound_method.b6e] @@ -198,7 +198,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %.loc37_5.2: ref %array_type = temporary %.loc37_5.1, %F.call.loc37 // CHECK:STDOUT: %int_32.loc37: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc37: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc37_7: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc37_7: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc37_7.1: = bound_method %int_0.loc37, %impl.elem0.loc37_7 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc37_7: = specific_function %impl.elem0.loc37_7, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc37_7.2: = bound_method %int_0.loc37, %specific_fn.loc37_7 [concrete = constants.%bound_method.b6e] @@ -208,7 +208,7 @@ fn G(b: array(i32, 3)) { // CHECK:STDOUT: %.loc37_8.1: ref %i32 = array_index %.loc37_5.2, %.loc37_7.2 // CHECK:STDOUT: %.loc37_8.2: %i32 = bind_value %.loc37_8.1 // CHECK:STDOUT: %int_4.loc37: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc37_10: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc37_10: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc37_10.1: = bound_method %int_4.loc37, %impl.elem0.loc37_10 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc37_10: = specific_function %impl.elem0.loc37_10, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc37_10.2: = bound_method %int_4.loc37, %specific_fn.loc37_10 [concrete = constants.%bound_method.1da] diff --git a/toolchain/check/testdata/index/fail_negative_indexing.carbon b/toolchain/check/testdata/index/fail_negative_indexing.carbon index 37338abf968f..2c8bd8dab622 100644 --- a/toolchain/check/testdata/index/fail_negative_indexing.carbon +++ b/toolchain/check/testdata/index/fail_negative_indexing.carbon @@ -32,8 +32,8 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.132: = bound_method %int_42.20e, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.8c1: = bound_method %int_42.20e, %Convert.specific_fn [concrete] @@ -43,8 +43,8 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete] // CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.14 [concrete] // CHECK:STDOUT: %impl_witness.0f6: = impl_witness (imports.%Core.import_ref.c15) [concrete] -// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, %impl_witness.0f6 [concrete] -// CHECK:STDOUT: %.45d: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%impl_witness.0f6) [concrete] +// CHECK:STDOUT: %.690: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] // CHECK:STDOUT: %Op.type.1be: type = fn_type @Op.15 [concrete] // CHECK:STDOUT: %Op.bba: %Op.type.1be = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %int_10, %Op.bba [concrete] @@ -100,7 +100,7 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %int_42.loc11_25: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %int_42.loc11_29: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] // CHECK:STDOUT: %.loc11_31.1: %tuple.type = tuple_literal (%int_42.loc11_25, %int_42.loc11_29) -// CHECK:STDOUT: %impl.elem0.loc11_31.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_31.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_31.1: = bound_method %int_42.loc11_25, %impl.elem0.loc11_31.1 [concrete = constants.%Convert.bound.132] // CHECK:STDOUT: %specific_fn.loc11_31.1: = specific_function %impl.elem0.loc11_31.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_31.2: = bound_method %int_42.loc11_25, %specific_fn.loc11_31.1 [concrete = constants.%bound_method.8c1] @@ -109,7 +109,7 @@ var d: i32 = c[-10]; // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc11_31.3: ref %i32 = array_index file.%c.var, %int_0 // CHECK:STDOUT: %.loc11_31.4: init %i32 = initialize_from %.loc11_31.2 to %.loc11_31.3 [concrete = constants.%int_42.c68] -// CHECK:STDOUT: %impl.elem0.loc11_31.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_31.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_31.3: = bound_method %int_42.loc11_29, %impl.elem0.loc11_31.2 [concrete = constants.%Convert.bound.132] // CHECK:STDOUT: %specific_fn.loc11_31.2: = specific_function %impl.elem0.loc11_31.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_31.4: = bound_method %int_42.loc11_29, %specific_fn.loc11_31.2 [concrete = constants.%bound_method.8c1] @@ -123,12 +123,12 @@ var d: i32 = c[-10]; // CHECK:STDOUT: assign file.%c.var, %.loc11_1 // CHECK:STDOUT: %c.ref: ref %array_type = name_ref c, file.%c // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10] -// CHECK:STDOUT: %impl.elem0.loc16_16.1: %.45d = impl_witness_access constants.%impl_witness.0f6, element0 [concrete = constants.%Op.bba] +// CHECK:STDOUT: %impl.elem0.loc16_16.1: %.690 = impl_witness_access constants.%impl_witness.0f6, element0 [concrete = constants.%Op.bba] // CHECK:STDOUT: %bound_method.loc16_16.1: = bound_method %int_10, %impl.elem0.loc16_16.1 [concrete = constants.%Op.bound] // CHECK:STDOUT: %int.snegate: init Core.IntLiteral = call %bound_method.loc16_16.1(%int_10) [concrete = constants.%int_-10.06d] // 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: %impl.elem0.loc16_16.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16_16.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_16.2: = bound_method %int.snegate, %impl.elem0.loc16_16.2 [concrete = constants.%Convert.bound.1ca] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_16.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_16.3: = bound_method %int.snegate, %specific_fn.loc16 [concrete = constants.%bound_method.af0] diff --git a/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon b/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon index a38739780281..ce1bc2a369e1 100644 --- a/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon +++ b/toolchain/check/testdata/interface/fail_todo_assoc_const_default.carbon @@ -39,8 +39,8 @@ interface I { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Convert.specific_fn [concrete] @@ -79,7 +79,7 @@ interface I { // CHECK:STDOUT: %N: %i32 = assoc_const_decl @N [concrete] { // CHECK:STDOUT: %assoc1: %I.assoc_type = assoc_entity element1, @I.%N [concrete = constants.%assoc1] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_27.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_27.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/interface/member_lookup.carbon b/toolchain/check/testdata/interface/member_lookup.carbon index 7a6412390871..285a1d9336ba 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -66,9 +66,9 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessGeneric: %AccessGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.6f3: = require_complete_type %Interface.type.d32 [symbolic] // CHECK:STDOUT: %I.as_type.59e: type = facet_access_type %I.a5f [symbolic] -// CHECK:STDOUT: %I.as_wit.9f4: = facet_access_witness %I.a5f [symbolic] -// CHECK:STDOUT: %Interface.facet.856: %Interface.type.d32 = facet_value %I.as_type.59e, %I.as_wit.9f4 [symbolic] -// CHECK:STDOUT: %impl.elem0.68a: %T = impl_witness_access %I.as_wit.9f4, element0 [symbolic] +// CHECK:STDOUT: %I.as_wit.iface0.82b: = facet_access_witness %I.a5f, element0 [symbolic] +// CHECK:STDOUT: %Interface.facet.687: %Interface.type.d32 = facet_value %I.as_type.59e, (%I.as_wit.iface0.82b) [symbolic] +// CHECK:STDOUT: %impl.elem0.94c: %T = impl_witness_access %I.as_wit.iface0.82b, element0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Interface.type.981: type = facet_type <@Interface, @Interface(%i32)> [concrete] @@ -81,9 +81,9 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %Interface.assoc_type.44d: type = assoc_entity_type %Interface.type.981 [concrete] // CHECK:STDOUT: %assoc0.4ff: %Interface.assoc_type.44d = assoc_entity element0, @Interface.%X [concrete] // CHECK:STDOUT: %I.as_type.ee6: type = facet_access_type %I.d08 [symbolic] -// CHECK:STDOUT: %I.as_wit.156: = facet_access_witness %I.d08 [symbolic] -// CHECK:STDOUT: %Interface.facet.d35: %Interface.type.981 = facet_value %I.as_type.ee6, %I.as_wit.156 [symbolic] -// CHECK:STDOUT: %impl.elem0.b00: %i32 = impl_witness_access %I.as_wit.156, element0 [symbolic] +// CHECK:STDOUT: %I.as_wit.iface0.dd7: = facet_access_witness %I.d08, element0 [symbolic] +// CHECK:STDOUT: %Interface.facet.124: %Interface.type.981 = facet_value %I.as_type.ee6, (%I.as_wit.iface0.dd7) [symbolic] +// CHECK:STDOUT: %impl.elem0.e89: %i32 = impl_witness_access %I.as_wit.iface0.dd7, element0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -186,8 +186,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.3bd)] // CHECK:STDOUT: %assoc0: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.3bd) = assoc_entity element0, @Interface.%X [symbolic = %assoc0 (constants.%assoc0.ed7)] // CHECK:STDOUT: %I.as_type.loc9_11.2: type = facet_access_type %I.loc8_28.2 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.59e)] -// CHECK:STDOUT: %I.as_wit.loc9_11.2: = facet_access_witness %I.loc8_28.2 [symbolic = %I.as_wit.loc9_11.2 (constants.%I.as_wit.9f4)] -// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.68a)] +// CHECK:STDOUT: %I.as_wit.iface0.loc9_11.2: = facet_access_witness %I.loc8_28.2, element0 [symbolic = %I.as_wit.iface0.loc9_11.2 (constants.%I.as_wit.iface0.82b)] +// CHECK:STDOUT: %impl.elem0.loc9_11.2: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.iface0.loc9_11.2, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.94c)] // CHECK:STDOUT: %require_complete.loc9_13: = require_complete_type @AccessGeneric.%T.loc8_18.2 (%T) [symbolic = %require_complete.loc9_13 (constants.%require_complete.4ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn[%T.patt.loc8_18.1: type](%I.patt.loc8_28.1: @AccessGeneric.%Interface.type.loc8_43.2 (%Interface.type.d32)) -> @AccessGeneric.%T.loc8_18.2 (%T) { @@ -197,8 +197,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %X.ref: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.3bd) = name_ref X, %.loc9_11.1 [symbolic = %assoc0 (constants.%assoc0.ed7)] // 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.59e)] // 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.59e)] -// CHECK:STDOUT: %I.as_wit.loc9_11.1: = facet_access_witness %I.ref [symbolic = %I.as_wit.loc9_11.2 (constants.%I.as_wit.9f4)] -// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.68a)] +// CHECK:STDOUT: %I.as_wit.iface0.loc9_11.1: = facet_access_witness %I.ref, element0 [symbolic = %I.as_wit.iface0.loc9_11.2 (constants.%I.as_wit.iface0.82b)] +// CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%T.loc8_18.2 (%T) = impl_witness_access %I.as_wit.iface0.loc9_11.1, element0 [symbolic = %impl.elem0.loc9_11.2 (constants.%impl.elem0.94c)] // CHECK:STDOUT: return %impl.elem0.loc9_11.1 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -209,8 +209,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc12_19.2 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.ee6)] -// CHECK:STDOUT: %I.as_wit.loc13_11.2: = facet_access_witness %I.loc12_19.2 [symbolic = %I.as_wit.loc13_11.2 (constants.%I.as_wit.156)] -// CHECK:STDOUT: %impl.elem0.loc13_11.2: %i32 = impl_witness_access %I.as_wit.loc13_11.2, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.b00)] +// CHECK:STDOUT: %I.as_wit.iface0.loc13_11.2: = facet_access_witness %I.loc12_19.2, element0 [symbolic = %I.as_wit.iface0.loc13_11.2 (constants.%I.as_wit.iface0.dd7)] +// CHECK:STDOUT: %impl.elem0.loc13_11.2: %i32 = impl_witness_access %I.as_wit.iface0.loc13_11.2, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.e89)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%I.patt.loc12_19.1: %Interface.type.981) -> %i32 { // CHECK:STDOUT: !entry: @@ -219,8 +219,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %X.ref: %Interface.assoc_type.44d = name_ref X, %.loc13_11.1 [concrete = constants.%assoc0.4ff] // 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.ee6)] // 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.ee6)] -// CHECK:STDOUT: %I.as_wit.loc13_11.1: = facet_access_witness %I.ref [symbolic = %I.as_wit.loc13_11.2 (constants.%I.as_wit.156)] -// CHECK:STDOUT: %impl.elem0.loc13_11.1: %i32 = impl_witness_access %I.as_wit.loc13_11.1, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.b00)] +// CHECK:STDOUT: %I.as_wit.iface0.loc13_11.1: = facet_access_witness %I.ref, element0 [symbolic = %I.as_wit.iface0.loc13_11.2 (constants.%I.as_wit.iface0.dd7)] +// CHECK:STDOUT: %impl.elem0.loc13_11.1: %i32 = impl_witness_access %I.as_wit.iface0.loc13_11.1, element0 [symbolic = %impl.elem0.loc13_11.2 (constants.%impl.elem0.e89)] // CHECK:STDOUT: return %impl.elem0.loc13_11.1 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -253,7 +253,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface(@AccessGeneric.%T.loc8_18.2) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%T, constants.%Interface.facet.856) { +// CHECK:STDOUT: specific @X(constants.%T, constants.%Interface.facet.687) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %require_complete => constants.%require_complete.4ae // CHECK:STDOUT: } @@ -274,7 +274,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.patt.loc12_19.2 => constants.%I.d08 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X(constants.%i32, constants.%Interface.facet.d35) { +// CHECK:STDOUT: specific @X(constants.%i32, constants.%Interface.facet.124) { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/no_prelude/compound_member_access.carbon b/toolchain/check/testdata/interface/no_prelude/compound_member_access.carbon index f00f45860459..f1e8dec9ba3a 100644 --- a/toolchain/check/testdata/interface/no_prelude/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/no_prelude/compound_member_access.carbon @@ -258,7 +258,7 @@ fn Works() { // CHECK:STDOUT: %Op.type.28d: type = fn_type @Op.2, @impl(%T) [symbolic] // CHECK:STDOUT: %Op.902: %Op.type.28d = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, %impl_witness [symbolic] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %T, (%impl_witness) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -543,21 +543,21 @@ fn Works() { // CHECK:STDOUT: %T: %J.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %T.patt: %J.type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] -// CHECK:STDOUT: %T.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %J.facet.70ff88.1: %J.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %impl.elem0.f44b07.1: type = impl_witness_access %T.as_wit, element0 [symbolic] -// CHECK:STDOUT: %S: %impl.elem0.f44b07.1 = bind_symbolic_name S, 1 [symbolic] -// CHECK:STDOUT: %S.patt: %impl.elem0.f44b07.1 = symbolic_binding_pattern S, 1 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %J.facet.085e97.1: %J.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %impl.elem0.d9c3a6.1: type = impl_witness_access %T.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %S: %impl.elem0.d9c3a6.1 = bind_symbolic_name S, 1 [symbolic] +// CHECK:STDOUT: %S.patt: %impl.elem0.d9c3a6.1 = symbolic_binding_pattern S, 1 [symbolic] // CHECK:STDOUT: %Simple1.type: type = fn_type @Simple1 [concrete] // CHECK:STDOUT: %Simple1: %Simple1.type = struct_value () [concrete] // CHECK:STDOUT: %V: %J.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.patt: %J.type = symbolic_binding_pattern V, 0 [symbolic] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %V.as_wit: = facet_access_witness %V [symbolic] -// CHECK:STDOUT: %J.facet.70ff88.2: %J.type = facet_value %V.as_type, %V.as_wit [symbolic] -// CHECK:STDOUT: %impl.elem0.f44b07.2: type = impl_witness_access %V.as_wit, element0 [symbolic] -// CHECK:STDOUT: %W: %impl.elem0.f44b07.2 = bind_symbolic_name W, 1 [symbolic] -// CHECK:STDOUT: %W.patt: %impl.elem0.f44b07.2 = symbolic_binding_pattern W, 1 [symbolic] +// CHECK:STDOUT: %V.as_wit.iface0: = facet_access_witness %V, element0 [symbolic] +// CHECK:STDOUT: %J.facet.085e97.2: %J.type = facet_value %V.as_type, (%V.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %impl.elem0.d9c3a6.2: type = impl_witness_access %V.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %W: %impl.elem0.d9c3a6.2 = bind_symbolic_name W, 1 [symbolic] +// CHECK:STDOUT: %W.patt: %impl.elem0.d9c3a6.2 = symbolic_binding_pattern W, 1 [symbolic] // CHECK:STDOUT: %Compound1.type: type = fn_type @Compound1 [concrete] // CHECK:STDOUT: %Compound1: %Compound1.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -571,34 +571,34 @@ fn Works() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %Simple1.decl: %Simple1.type = fn_decl @Simple1 [concrete = constants.%Simple1] { // CHECK:STDOUT: %T.patt.loc8_12.1: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_12.2 (constants.%T.patt)] -// CHECK:STDOUT: %S.patt.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.f44b07.1) = symbolic_binding_pattern S, 1 [symbolic = %S.patt.loc8_19.2 (constants.%S.patt)] +// CHECK:STDOUT: %S.patt.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.d9c3a6.1) = symbolic_binding_pattern S, 1 [symbolic = %S.patt.loc8_19.2 (constants.%S.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %T.loc8_12.1: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] -// CHECK:STDOUT: %.loc8_24.1: type = splice_block %impl.elem0.loc8_24.1 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.f44b07.1)] { +// CHECK:STDOUT: %.loc8_24.1: type = splice_block %impl.elem0.loc8_24.1 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.d9c3a6.1)] { // CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc8_12.1 [symbolic = %T.loc8_12.2 (constants.%T)] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc8_24.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_24.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc8_24.2: type = converted %T.ref, %T.as_type.loc8_24.1 [symbolic = %T.as_type.loc8_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc8_24.1: = facet_access_witness %T.ref [symbolic = %T.as_wit.loc8_24.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc8_24.1: type = impl_witness_access %T.as_wit.loc8_24.1, element0 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.f44b07.1)] +// CHECK:STDOUT: %T.as_wit.iface0.loc8_24.1: = facet_access_witness %T.ref, element0 [symbolic = %T.as_wit.iface0.loc8_24.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc8_24.1: type = impl_witness_access %T.as_wit.iface0.loc8_24.1, element0 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.d9c3a6.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.f44b07.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.2 (constants.%S)] +// CHECK:STDOUT: %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.d9c3a6.1) = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.2 (constants.%S)] // CHECK:STDOUT: } // CHECK:STDOUT: %Compound1.decl: %Compound1.type = fn_decl @Compound1 [concrete = constants.%Compound1] { // CHECK:STDOUT: %V.patt.loc11_14.1: %J.type = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc11_14.2 (constants.%V.patt)] -// CHECK:STDOUT: %W.patt.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.f44b07.2) = symbolic_binding_pattern W, 1 [symbolic = %W.patt.loc11_21.2 (constants.%W.patt)] +// CHECK:STDOUT: %W.patt.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.d9c3a6.2) = symbolic_binding_pattern W, 1 [symbolic = %W.patt.loc11_21.2 (constants.%W.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %J.ref.loc11_18: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %V.loc11_14.1: %J.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)] -// CHECK:STDOUT: %.loc11: type = splice_block %impl.elem0.loc11_26.1 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.f44b07.2)] { +// CHECK:STDOUT: %.loc11: type = splice_block %impl.elem0.loc11_26.1 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.d9c3a6.2)] { // CHECK:STDOUT: %V.ref: %J.type = name_ref V, %V.loc11_14.1 [symbolic = %V.loc11_14.2 (constants.%V)] // CHECK:STDOUT: %J.ref.loc11_28: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %V.as_wit.loc11_26.1: = facet_access_witness %V.ref [symbolic = %V.as_wit.loc11_26.2 (constants.%V.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc11_26.1: type = impl_witness_access %V.as_wit.loc11_26.1, element0 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.f44b07.2)] +// CHECK:STDOUT: %V.as_wit.iface0.loc11_26.1: = facet_access_witness %V.ref, element0 [symbolic = %V.as_wit.iface0.loc11_26.2 (constants.%V.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc11_26.1: type = impl_witness_access %V.as_wit.iface0.loc11_26.1, element0 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.d9c3a6.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.f44b07.2) = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.2 (constants.%W)] +// CHECK:STDOUT: %W.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.d9c3a6.2) = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.2 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -618,34 +618,34 @@ fn Works() { // CHECK:STDOUT: assoc_const U:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Simple1(%T.loc8_12.1: %J.type, %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.f44b07.1)) { +// CHECK:STDOUT: generic fn @Simple1(%T.loc8_12.1: %J.type, %S.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.d9c3a6.1)) { // CHECK:STDOUT: %T.loc8_12.2: %J.type = bind_symbolic_name T, 0 [symbolic = %T.loc8_12.2 (constants.%T)] // CHECK:STDOUT: %T.patt.loc8_12.2: %J.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_12.2 (constants.%T.patt)] // CHECK:STDOUT: %T.as_type.loc8_24.2: type = facet_access_type %T.loc8_12.2 [symbolic = %T.as_type.loc8_24.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc8_24.2: = facet_access_witness %T.loc8_12.2 [symbolic = %T.as_wit.loc8_24.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc8_24.2: type = impl_witness_access %T.as_wit.loc8_24.2, element0 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.f44b07.1)] -// CHECK:STDOUT: %S.loc8_19.2: %impl.elem0.f44b07.1 = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.2 (constants.%S)] -// CHECK:STDOUT: %S.patt.loc8_19.2: %impl.elem0.f44b07.1 = symbolic_binding_pattern S, 1 [symbolic = %S.patt.loc8_19.2 (constants.%S.patt)] +// CHECK:STDOUT: %T.as_wit.iface0.loc8_24.2: = facet_access_witness %T.loc8_12.2, element0 [symbolic = %T.as_wit.iface0.loc8_24.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc8_24.2: type = impl_witness_access %T.as_wit.iface0.loc8_24.2, element0 [symbolic = %impl.elem0.loc8_24.2 (constants.%impl.elem0.d9c3a6.1)] +// CHECK:STDOUT: %S.loc8_19.2: %impl.elem0.d9c3a6.1 = bind_symbolic_name S, 1 [symbolic = %S.loc8_19.2 (constants.%S)] +// CHECK:STDOUT: %S.patt.loc8_19.2: %impl.elem0.d9c3a6.1 = symbolic_binding_pattern S, 1 [symbolic = %S.patt.loc8_19.2 (constants.%S.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.patt.loc8_12.1: %J.type, %S.patt.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.f44b07.1)) { +// CHECK:STDOUT: fn(%T.patt.loc8_12.1: %J.type, %S.patt.loc8_19.1: @Simple1.%impl.elem0.loc8_24.2 (%impl.elem0.d9c3a6.1)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Compound1(%V.loc11_14.1: %J.type, %W.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.f44b07.2)) { +// CHECK:STDOUT: generic fn @Compound1(%V.loc11_14.1: %J.type, %W.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.d9c3a6.2)) { // CHECK:STDOUT: %V.loc11_14.2: %J.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)] // CHECK:STDOUT: %V.patt.loc11_14.2: %J.type = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc11_14.2 (constants.%V.patt)] -// CHECK:STDOUT: %V.as_wit.loc11_26.2: = facet_access_witness %V.loc11_14.2 [symbolic = %V.as_wit.loc11_26.2 (constants.%V.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc11_26.2: type = impl_witness_access %V.as_wit.loc11_26.2, element0 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.f44b07.2)] -// CHECK:STDOUT: %W.loc11_21.2: %impl.elem0.f44b07.2 = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.2 (constants.%W)] -// CHECK:STDOUT: %W.patt.loc11_21.2: %impl.elem0.f44b07.2 = symbolic_binding_pattern W, 1 [symbolic = %W.patt.loc11_21.2 (constants.%W.patt)] +// CHECK:STDOUT: %V.as_wit.iface0.loc11_26.2: = facet_access_witness %V.loc11_14.2, element0 [symbolic = %V.as_wit.iface0.loc11_26.2 (constants.%V.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc11_26.2: type = impl_witness_access %V.as_wit.iface0.loc11_26.2, element0 [symbolic = %impl.elem0.loc11_26.2 (constants.%impl.elem0.d9c3a6.2)] +// CHECK:STDOUT: %W.loc11_21.2: %impl.elem0.d9c3a6.2 = bind_symbolic_name W, 1 [symbolic = %W.loc11_21.2 (constants.%W)] +// CHECK:STDOUT: %W.patt.loc11_21.2: %impl.elem0.d9c3a6.2 = symbolic_binding_pattern W, 1 [symbolic = %W.patt.loc11_21.2 (constants.%W.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%V.patt.loc11_14.1: %J.type, %W.patt.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.f44b07.2)) { +// CHECK:STDOUT: fn(%V.patt.loc11_14.1: %J.type, %W.patt.loc11_21.1: @Compound1.%impl.elem0.loc11_26.2 (%impl.elem0.d9c3a6.2)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -653,25 +653,25 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @U(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.70ff88.1) {} +// CHECK:STDOUT: specific @U(constants.%J.facet.085e97.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple1(constants.%T, constants.%S) { // CHECK:STDOUT: %T.loc8_12.2 => constants.%T // CHECK:STDOUT: %T.patt.loc8_12.2 => constants.%T // CHECK:STDOUT: %T.as_type.loc8_24.2 => constants.%T.as_type -// CHECK:STDOUT: %T.as_wit.loc8_24.2 => constants.%T.as_wit -// CHECK:STDOUT: %impl.elem0.loc8_24.2 => constants.%impl.elem0.f44b07.1 +// CHECK:STDOUT: %T.as_wit.iface0.loc8_24.2 => constants.%T.as_wit.iface0 +// CHECK:STDOUT: %impl.elem0.loc8_24.2 => constants.%impl.elem0.d9c3a6.1 // CHECK:STDOUT: %S.loc8_19.2 => constants.%S // CHECK:STDOUT: %S.patt.loc8_19.2 => constants.%S // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U(constants.%J.facet.70ff88.2) {} +// CHECK:STDOUT: specific @U(constants.%J.facet.085e97.2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound1(constants.%V, constants.%W) { // CHECK:STDOUT: %V.loc11_14.2 => constants.%V // CHECK:STDOUT: %V.patt.loc11_14.2 => constants.%V -// CHECK:STDOUT: %V.as_wit.loc11_26.2 => constants.%V.as_wit -// CHECK:STDOUT: %impl.elem0.loc11_26.2 => constants.%impl.elem0.f44b07.2 +// CHECK:STDOUT: %V.as_wit.iface0.loc11_26.2 => constants.%V.as_wit.iface0 +// CHECK:STDOUT: %impl.elem0.loc11_26.2 => constants.%impl.elem0.d9c3a6.2 // CHECK:STDOUT: %W.loc11_21.2 => constants.%W // CHECK:STDOUT: %W.patt.loc11_21.2 => constants.%W // CHECK:STDOUT: } @@ -691,21 +691,21 @@ fn Works() { // 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.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %K1.facet.5fb678.1: %K1.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.aaf76c.1: type = fn_type_with_self_type %Q1.type, %K1.facet.5fb678.1 [symbolic] -// CHECK:STDOUT: %impl.elem0.3809cc.1: %.aaf76c.1 = impl_witness_access %T.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn.bc5944.1: = specific_function %impl.elem0.3809cc.1, @Q1(%K1.facet.5fb678.1) [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %K1.facet.07e9b4.1: %K1.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.d66c00.1: type = fn_type_with_self_type %Q1.type, %K1.facet.07e9b4.1 [symbolic] +// CHECK:STDOUT: %impl.elem0.d9a98e.1: %.d66c00.1 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %specific_fn.4c5be7.1: = specific_function %impl.elem0.d9a98e.1, @Q1(%K1.facet.07e9b4.1) [symbolic] // CHECK:STDOUT: %V: %K1.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.patt: %K1.type = symbolic_binding_pattern V, 0 [symbolic] // CHECK:STDOUT: %Compound2.type: type = fn_type @Compound2 [concrete] // CHECK:STDOUT: %Compound2: %Compound2.type = struct_value () [concrete] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] -// CHECK:STDOUT: %V.as_wit: = facet_access_witness %V [symbolic] -// CHECK:STDOUT: %K1.facet.5fb678.2: %K1.type = facet_value %V.as_type, %V.as_wit [symbolic] -// CHECK:STDOUT: %.aaf76c.2: type = fn_type_with_self_type %Q1.type, %K1.facet.5fb678.2 [symbolic] -// CHECK:STDOUT: %impl.elem0.3809cc.2: %.aaf76c.2 = impl_witness_access %V.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn.bc5944.2: = specific_function %impl.elem0.3809cc.2, @Q1(%K1.facet.5fb678.2) [symbolic] +// CHECK:STDOUT: %V.as_wit.iface0: = facet_access_witness %V, element0 [symbolic] +// CHECK:STDOUT: %K1.facet.07e9b4.2: %K1.type = facet_value %V.as_type, (%V.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.d66c00.2: type = fn_type_with_self_type %Q1.type, %K1.facet.07e9b4.2 [symbolic] +// CHECK:STDOUT: %impl.elem0.d9a98e.2: %.d66c00.2 = impl_witness_access %V.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %specific_fn.4c5be7.2: = specific_function %impl.elem0.d9a98e.2, @Q1(%K1.facet.07e9b4.2) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -750,11 +750,11 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_12.2 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc9_4.2: = facet_access_witness %T.loc8_12.2 [symbolic = %T.as_wit.loc9_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %K1.facet: %K1.type = facet_value %T.as_type.loc9_4.2, %T.as_wit.loc9_4.2 [symbolic = %K1.facet (constants.%K1.facet.5fb678.1)] -// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%Q1.type, %K1.facet [symbolic = %.loc9_4.2 (constants.%.aaf76c.1)] -// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.aaf76c.1) = impl_witness_access %T.as_wit.loc9_4.2, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.3809cc.1)] -// CHECK:STDOUT: %specific_fn.loc9_4.2: = specific_function %impl.elem0.loc9_4.2, @Q1(%K1.facet) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn.bc5944.1)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_4.2: = facet_access_witness %T.loc8_12.2, element0 [symbolic = %T.as_wit.iface0.loc9_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %K1.facet: %K1.type = facet_value %T.as_type.loc9_4.2, (%T.as_wit.iface0.loc9_4.2) [symbolic = %K1.facet (constants.%K1.facet.07e9b4.1)] +// CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type constants.%Q1.type, %K1.facet [symbolic = %.loc9_4.2 (constants.%.d66c00.1)] +// CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple2.%.loc9_4.2 (%.d66c00.1) = impl_witness_access %T.as_wit.iface0.loc9_4.2, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.d9a98e.1)] +// CHECK:STDOUT: %specific_fn.loc9_4.2: = specific_function %impl.elem0.loc9_4.2, @Q1(%K1.facet) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn.4c5be7.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.loc8_12.1: %K1.type) { // CHECK:STDOUT: !entry: @@ -762,9 +762,9 @@ fn Works() { // 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_wit.loc9_4.1: = facet_access_witness %T.ref [symbolic = %T.as_wit.loc9_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.aaf76c.1) = impl_witness_access %T.as_wit.loc9_4.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.3809cc.1)] -// CHECK:STDOUT: %specific_fn.loc9_4.1: = specific_function %impl.elem0.loc9_4.1, @Q1(constants.%K1.facet.5fb678.1) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn.bc5944.1)] +// CHECK:STDOUT: %T.as_wit.iface0.loc9_4.1: = facet_access_witness %T.ref, element0 [symbolic = %T.as_wit.iface0.loc9_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.d66c00.1) = impl_witness_access %T.as_wit.iface0.loc9_4.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.d9a98e.1)] +// CHECK:STDOUT: %specific_fn.loc9_4.1: = specific_function %impl.elem0.loc9_4.1, @Q1(constants.%K1.facet.07e9b4.1) [symbolic = %specific_fn.loc9_4.2 (constants.%specific_fn.4c5be7.1)] // CHECK:STDOUT: %Q1.call: init %empty_tuple.type = call %specific_fn.loc9_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -775,21 +775,21 @@ fn Works() { // CHECK:STDOUT: %V.patt.loc13_14.2: %K1.type = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc13_14.2 (constants.%V.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %V.as_wit.loc14_4.2: = facet_access_witness %V.loc13_14.2 [symbolic = %V.as_wit.loc14_4.2 (constants.%V.as_wit)] +// CHECK:STDOUT: %V.as_wit.iface0.loc14_4.2: = facet_access_witness %V.loc13_14.2, element0 [symbolic = %V.as_wit.iface0.loc14_4.2 (constants.%V.as_wit.iface0)] // CHECK:STDOUT: %V.as_type: type = facet_access_type %V.loc13_14.2 [symbolic = %V.as_type (constants.%V.as_type)] -// CHECK:STDOUT: %K1.facet: %K1.type = facet_value %V.as_type, %V.as_wit.loc14_4.2 [symbolic = %K1.facet (constants.%K1.facet.5fb678.2)] -// CHECK:STDOUT: %.loc14: type = fn_type_with_self_type constants.%Q1.type, %K1.facet [symbolic = %.loc14 (constants.%.aaf76c.2)] -// CHECK:STDOUT: %impl.elem0.loc14_4.2: @Compound2.%.loc14 (%.aaf76c.2) = impl_witness_access %V.as_wit.loc14_4.2, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.3809cc.2)] -// CHECK:STDOUT: %specific_fn.loc14_4.2: = specific_function %impl.elem0.loc14_4.2, @Q1(%K1.facet) [symbolic = %specific_fn.loc14_4.2 (constants.%specific_fn.bc5944.2)] +// CHECK:STDOUT: %K1.facet: %K1.type = facet_value %V.as_type, (%V.as_wit.iface0.loc14_4.2) [symbolic = %K1.facet (constants.%K1.facet.07e9b4.2)] +// CHECK:STDOUT: %.loc14: type = fn_type_with_self_type constants.%Q1.type, %K1.facet [symbolic = %.loc14 (constants.%.d66c00.2)] +// CHECK:STDOUT: %impl.elem0.loc14_4.2: @Compound2.%.loc14 (%.d66c00.2) = impl_witness_access %V.as_wit.iface0.loc14_4.2, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.d9a98e.2)] +// CHECK:STDOUT: %specific_fn.loc14_4.2: = specific_function %impl.elem0.loc14_4.2, @Q1(%K1.facet) [symbolic = %specific_fn.loc14_4.2 (constants.%specific_fn.4c5be7.2)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%V.patt.loc13_14.1: %K1.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %V.ref: %K1.type = name_ref V, %V.loc13_14.1 [symbolic = %V.loc13_14.2 (constants.%V)] // CHECK:STDOUT: %K1.ref.loc14: type = name_ref K1, file.%K1.decl [concrete = constants.%K1.type] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %V.as_wit.loc14_4.1: = facet_access_witness %V.ref [symbolic = %V.as_wit.loc14_4.2 (constants.%V.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc14_4.1: @Compound2.%.loc14 (%.aaf76c.2) = impl_witness_access %V.as_wit.loc14_4.1, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.3809cc.2)] -// CHECK:STDOUT: %specific_fn.loc14_4.1: = specific_function %impl.elem0.loc14_4.1, @Q1(constants.%K1.facet.5fb678.2) [symbolic = %specific_fn.loc14_4.2 (constants.%specific_fn.bc5944.2)] +// CHECK:STDOUT: %V.as_wit.iface0.loc14_4.1: = facet_access_witness %V.ref, element0 [symbolic = %V.as_wit.iface0.loc14_4.2 (constants.%V.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc14_4.1: @Compound2.%.loc14 (%.d66c00.2) = impl_witness_access %V.as_wit.iface0.loc14_4.1, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.d9a98e.2)] +// CHECK:STDOUT: %specific_fn.loc14_4.1: = specific_function %impl.elem0.loc14_4.1, @Q1(constants.%K1.facet.07e9b4.2) [symbolic = %specific_fn.loc14_4.2 (constants.%specific_fn.4c5be7.2)] // CHECK:STDOUT: %Q1.call: init %empty_tuple.type = call %specific_fn.loc14_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -802,7 +802,7 @@ fn Works() { // CHECK:STDOUT: %T.patt.loc8_12.2 => constants.%T // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Q1(constants.%K1.facet.5fb678.1) {} +// CHECK:STDOUT: specific @Q1(constants.%K1.facet.07e9b4.1) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Q1(@Simple2.%K1.facet) {} // CHECK:STDOUT: @@ -811,7 +811,7 @@ fn Works() { // CHECK:STDOUT: %V.patt.loc13_14.2 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Q1(constants.%K1.facet.5fb678.2) {} +// CHECK:STDOUT: specific @Q1(constants.%K1.facet.07e9b4.2) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Q1(@Compound2.%K1.facet) {} // CHECK:STDOUT: @@ -831,10 +831,10 @@ fn Works() { // CHECK:STDOUT: %Simple3.type: type = fn_type @Simple3 [concrete] // CHECK:STDOUT: %Simple3: %Simple3.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.022e81.1: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %T.as_wit: = facet_access_witness %T.0ce [symbolic] -// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.813: type = fn_type_with_self_type %Q2.type, %K2.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.813 = impl_witness_access %T.as_wit, element0 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T.0ce, element0 [symbolic] +// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.75b: type = fn_type_with_self_type %Q2.type, %K2.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.75b = impl_witness_access %T.as_wit.iface0, element0 [symbolic] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Q2(%K2.facet) [symbolic] // CHECK:STDOUT: %V: %K2.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.patt: %K2.type = symbolic_binding_pattern V, 0 [symbolic] @@ -995,10 +995,10 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type @Simple3.%T.as_type.loc11_23.2 (%T.as_type) [symbolic = %require_complete (constants.%require_complete.022e81.1)] -// CHECK:STDOUT: %T.as_wit.loc12_4.2: = facet_access_witness %T.loc11_12.2 [symbolic = %T.as_wit.loc12_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type.loc11_23.2, %T.as_wit.loc12_4.2 [symbolic = %K2.facet (constants.%K2.facet)] -// CHECK:STDOUT: %.loc12_4.2: type = fn_type_with_self_type constants.%Q2.type, %K2.facet [symbolic = %.loc12_4.2 (constants.%.813)] -// CHECK:STDOUT: %impl.elem0.loc12_4.2: @Simple3.%.loc12_4.2 (%.813) = impl_witness_access %T.as_wit.loc12_4.2, element0 [symbolic = %impl.elem0.loc12_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc12_4.2: = facet_access_witness %T.loc11_12.2, element0 [symbolic = %T.as_wit.iface0.loc12_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %K2.facet: %K2.type = facet_value %T.as_type.loc11_23.2, (%T.as_wit.iface0.loc12_4.2) [symbolic = %K2.facet (constants.%K2.facet)] +// CHECK:STDOUT: %.loc12_4.2: type = fn_type_with_self_type constants.%Q2.type, %K2.facet [symbolic = %.loc12_4.2 (constants.%.75b)] +// CHECK:STDOUT: %impl.elem0.loc12_4.2: @Simple3.%.loc12_4.2 (%.75b) = impl_witness_access %T.as_wit.iface0.loc12_4.2, element0 [symbolic = %impl.elem0.loc12_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc12_4.2: = specific_function %impl.elem0.loc12_4.2, @Q2(%K2.facet) [symbolic = %specific_fn.loc12_4.2 (constants.%specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.loc11_12.1: %K2.type, %x.param_patt: @Simple3.%T.as_type.loc11_23.2 (%T.as_type)) { @@ -1007,8 +1007,8 @@ fn Works() { // CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.%assoc0 [concrete = constants.%assoc0.358] // CHECK:STDOUT: %T.as_type.loc12: type = facet_access_type constants.%T.0ce [symbolic = %T.as_type.loc11_23.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc12_4.1: type = converted constants.%T.0ce, %T.as_type.loc12 [symbolic = %T.as_type.loc11_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc12_4.1: = facet_access_witness constants.%T.0ce [symbolic = %T.as_wit.loc12_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc12_4.1: @Simple3.%.loc12_4.2 (%.813) = impl_witness_access %T.as_wit.loc12_4.1, element0 [symbolic = %impl.elem0.loc12_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc12_4.1: = facet_access_witness constants.%T.0ce, element0 [symbolic = %T.as_wit.iface0.loc12_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc12_4.1: @Simple3.%.loc12_4.2 (%.75b) = impl_witness_access %T.as_wit.iface0.loc12_4.1, element0 [symbolic = %impl.elem0.loc12_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_fn.loc12_4.1: = specific_function %impl.elem0.loc12_4.1, @Q2(constants.%K2.facet) [symbolic = %specific_fn.loc12_4.2 (constants.%specific_fn)] // CHECK:STDOUT: %Q2.call: init %empty_tuple.type = call %specific_fn.loc12_4.1() // CHECK:STDOUT: return @@ -1130,15 +1130,15 @@ fn Works() { // CHECK:STDOUT: %Simple4.type: type = fn_type @Simple4 [concrete] // CHECK:STDOUT: %Simple4: %Simple4.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.97cd40.1: = require_complete_type %T.as_type [symbolic] -// CHECK:STDOUT: %T.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.1e8: type = fn_type_with_self_type %R1.type, %L1.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.1e8 = impl_witness_access %T.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn.510: = specific_function %impl.elem0, @R1(%L1.facet) [symbolic] -// CHECK:STDOUT: %.d0e: type = fn_type_with_self_type %S1.type, %L1.facet [symbolic] -// CHECK:STDOUT: %impl.elem1: %.d0e = impl_witness_access %T.as_wit, element1 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.0c3: type = fn_type_with_self_type %R1.type, %L1.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.0c3 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %specific_fn.11d: = specific_function %impl.elem0, @R1(%L1.facet) [symbolic] +// CHECK:STDOUT: %.e74: type = fn_type_with_self_type %S1.type, %L1.facet [symbolic] +// CHECK:STDOUT: %impl.elem1: %.e74 = impl_witness_access %T.as_wit.iface0, element1 [symbolic] // CHECK:STDOUT: %ptr.72f01d.2: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %specific_fn.c9e: = specific_function %impl.elem1, @S1(%L1.facet) [symbolic] +// CHECK:STDOUT: %specific_fn.622: = specific_function %impl.elem1, @S1(%L1.facet) [symbolic] // CHECK:STDOUT: %require_complete.932: = require_complete_type %ptr.72f01d.2 [symbolic] // CHECK:STDOUT: %V: %L1.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.patt: %L1.type = symbolic_binding_pattern V, 0 [symbolic] @@ -1247,14 +1247,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10: = require_complete_type @Simple4.%T.as_type.loc10_23.2 (%T.as_type) [symbolic = %require_complete.loc10 (constants.%require_complete.97cd40.1)] -// CHECK:STDOUT: %T.as_wit.loc11_4.2: = facet_access_witness %T.loc10_12.2 [symbolic = %T.as_wit.loc11_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %T.as_type.loc10_23.2, %T.as_wit.loc11_4.2 [symbolic = %L1.facet (constants.%L1.facet)] -// CHECK:STDOUT: %.loc11_4.2: type = fn_type_with_self_type constants.%R1.type, %L1.facet [symbolic = %.loc11_4.2 (constants.%.1e8)] -// CHECK:STDOUT: %impl.elem0.loc11_4.2: @Simple4.%.loc11_4.2 (%.1e8) = impl_witness_access %T.as_wit.loc11_4.2, element0 [symbolic = %impl.elem0.loc11_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_fn.loc11_4.2: = specific_function %impl.elem0.loc11_4.2, @R1(%L1.facet) [symbolic = %specific_fn.loc11_4.2 (constants.%specific_fn.510)] -// CHECK:STDOUT: %.loc13_8.2: type = fn_type_with_self_type constants.%S1.type, %L1.facet [symbolic = %.loc13_8.2 (constants.%.d0e)] -// CHECK:STDOUT: %impl.elem1.loc13_8.2: @Simple4.%.loc13_8.2 (%.d0e) = impl_witness_access %T.as_wit.loc11_4.2, element1 [symbolic = %impl.elem1.loc13_8.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_fn.loc13_8.2: = specific_function %impl.elem1.loc13_8.2, @S1(%L1.facet) [symbolic = %specific_fn.loc13_8.2 (constants.%specific_fn.c9e)] +// CHECK:STDOUT: %T.as_wit.iface0.loc11_4.2: = facet_access_witness %T.loc10_12.2, element0 [symbolic = %T.as_wit.iface0.loc11_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %L1.facet: %L1.type = facet_value %T.as_type.loc10_23.2, (%T.as_wit.iface0.loc11_4.2) [symbolic = %L1.facet (constants.%L1.facet)] +// CHECK:STDOUT: %.loc11_4.2: type = fn_type_with_self_type constants.%R1.type, %L1.facet [symbolic = %.loc11_4.2 (constants.%.0c3)] +// CHECK:STDOUT: %impl.elem0.loc11_4.2: @Simple4.%.loc11_4.2 (%.0c3) = impl_witness_access %T.as_wit.iface0.loc11_4.2, element0 [symbolic = %impl.elem0.loc11_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_fn.loc11_4.2: = specific_function %impl.elem0.loc11_4.2, @R1(%L1.facet) [symbolic = %specific_fn.loc11_4.2 (constants.%specific_fn.11d)] +// CHECK:STDOUT: %.loc13_8.2: type = fn_type_with_self_type constants.%S1.type, %L1.facet [symbolic = %.loc13_8.2 (constants.%.e74)] +// CHECK:STDOUT: %impl.elem1.loc13_8.2: @Simple4.%.loc13_8.2 (%.e74) = impl_witness_access %T.as_wit.iface0.loc11_4.2, element1 [symbolic = %impl.elem1.loc13_8.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_fn.loc13_8.2: = specific_function %impl.elem1.loc13_8.2, @S1(%L1.facet) [symbolic = %specific_fn.loc13_8.2 (constants.%specific_fn.622)] // CHECK:STDOUT: %ptr: type = ptr_type @Simple4.%T.as_type.loc10_23.2 (%T.as_type) [symbolic = %ptr (constants.%ptr.72f01d.2)] // CHECK:STDOUT: %require_complete.loc13: = require_complete_type @Simple4.%ptr (%ptr.72f01d.2) [symbolic = %require_complete.loc13 (constants.%require_complete.932)] // CHECK:STDOUT: @@ -1264,10 +1264,10 @@ fn Works() { // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %T.as_type.loc11: type = facet_access_type constants.%T [symbolic = %T.as_type.loc10_23.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc11_4.1: type = converted constants.%T, %T.as_type.loc11 [symbolic = %T.as_type.loc10_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc11_4.1: = facet_access_witness constants.%T [symbolic = %T.as_wit.loc11_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc11_4.1: @Simple4.%.loc11_4.2 (%.1e8) = impl_witness_access %T.as_wit.loc11_4.1, element0 [symbolic = %impl.elem0.loc11_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc11_4.1: = facet_access_witness constants.%T, element0 [symbolic = %T.as_wit.iface0.loc11_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc11_4.1: @Simple4.%.loc11_4.2 (%.0c3) = impl_witness_access %T.as_wit.iface0.loc11_4.1, element0 [symbolic = %impl.elem0.loc11_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc11_4: = bound_method %x.ref.loc11, %impl.elem0.loc11_4.1 -// CHECK:STDOUT: %specific_fn.loc11_4.1: = specific_function %impl.elem0.loc11_4.1, @R1(constants.%L1.facet) [symbolic = %specific_fn.loc11_4.2 (constants.%specific_fn.510)] +// CHECK:STDOUT: %specific_fn.loc11_4.1: = specific_function %impl.elem0.loc11_4.1, @R1(constants.%L1.facet) [symbolic = %specific_fn.loc11_4.2 (constants.%specific_fn.11d)] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %x.ref.loc11, %specific_fn.loc11_4.1 // CHECK:STDOUT: %R1.call: init %empty_tuple.type = call %bound_method.loc11_8(%x.ref.loc11) // CHECK:STDOUT: name_binding_decl { @@ -1287,10 +1287,10 @@ fn Works() { // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %T.as_type.loc13: type = facet_access_type constants.%T [symbolic = %T.as_type.loc10_23.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc13_8.1: type = converted constants.%T, %T.as_type.loc13 [symbolic = %T.as_type.loc10_23.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc13: = facet_access_witness constants.%T [symbolic = %T.as_wit.loc11_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem1.loc13_8.1: @Simple4.%.loc13_8.2 (%.d0e) = impl_witness_access %T.as_wit.loc13, element1 [symbolic = %impl.elem1.loc13_8.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %T.as_wit.iface0.loc13: = facet_access_witness constants.%T, element0 [symbolic = %T.as_wit.iface0.loc11_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem1.loc13_8.1: @Simple4.%.loc13_8.2 (%.e74) = impl_witness_access %T.as_wit.iface0.loc13, element1 [symbolic = %impl.elem1.loc13_8.2 (constants.%impl.elem1)] // CHECK:STDOUT: %bound_method.loc13_8: = bound_method %xcopy.ref, %impl.elem1.loc13_8.1 -// CHECK:STDOUT: %specific_fn.loc13_8.1: = specific_function %impl.elem1.loc13_8.1, @S1(constants.%L1.facet) [symbolic = %specific_fn.loc13_8.2 (constants.%specific_fn.c9e)] +// CHECK:STDOUT: %specific_fn.loc13_8.1: = specific_function %impl.elem1.loc13_8.1, @S1(constants.%L1.facet) [symbolic = %specific_fn.loc13_8.2 (constants.%specific_fn.622)] // CHECK:STDOUT: %bound_method.loc13_12: = bound_method %xcopy.ref, %specific_fn.loc13_8.1 // CHECK:STDOUT: %addr: @Simple4.%ptr (%ptr.72f01d.2) = addr_of %xcopy.ref // CHECK:STDOUT: %S1.call: init %empty_tuple.type = call %bound_method.loc13_12(%addr) @@ -1389,15 +1389,15 @@ fn Works() { // 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.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.973: type = fn_type_with_self_type %R2.type, %L2.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.973 = impl_witness_access %T.as_wit, element0 [symbolic] -// CHECK:STDOUT: %specific_fn.e11: = specific_function %impl.elem0, @R2(%L2.facet) [symbolic] -// CHECK:STDOUT: %.3ca: type = fn_type_with_self_type %S2.type, %L2.facet [symbolic] -// CHECK:STDOUT: %impl.elem1: %.3ca = impl_witness_access %T.as_wit, element1 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.f52: type = fn_type_with_self_type %R2.type, %L2.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.f52 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %specific_fn.49e: = specific_function %impl.elem0, @R2(%L2.facet) [symbolic] +// CHECK:STDOUT: %.f66: type = fn_type_with_self_type %S2.type, %L2.facet [symbolic] +// CHECK:STDOUT: %impl.elem1: %.f66 = impl_witness_access %T.as_wit.iface0, element1 [symbolic] // CHECK:STDOUT: %ptr.f3e54b.2: type = ptr_type %T.as_type [symbolic] -// CHECK:STDOUT: %specific_fn.cf2: = specific_function %impl.elem1, @S2(%L2.facet) [symbolic] +// CHECK:STDOUT: %specific_fn.901: = specific_function %impl.elem1, @S2(%L2.facet) [symbolic] // CHECK:STDOUT: %V: %L2.type = bind_symbolic_name V, 0 [symbolic] // CHECK:STDOUT: %V.patt: %L2.type = symbolic_binding_pattern V, 0 [symbolic] // CHECK:STDOUT: %Compound5.type: type = fn_type @Compound5 [concrete] @@ -1484,14 +1484,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc18_4.2: type = facet_access_type %T.loc10_12.2 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc18_4.2: = facet_access_witness %T.loc10_12.2 [symbolic = %T.as_wit.loc18_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %T.as_type.loc18_4.2, %T.as_wit.loc18_4.2 [symbolic = %L2.facet (constants.%L2.facet)] -// CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type constants.%R2.type, %L2.facet [symbolic = %.loc18_4.2 (constants.%.973)] -// CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.973) = impl_witness_access %T.as_wit.loc18_4.2, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_fn.loc18_4.2: = specific_function %impl.elem0.loc18_4.2, @R2(%L2.facet) [symbolic = %specific_fn.loc18_4.2 (constants.%specific_fn.e11)] -// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type constants.%S2.type, %L2.facet [symbolic = %.loc26_4.2 (constants.%.3ca)] -// CHECK:STDOUT: %impl.elem1.loc26_4.2: @Simple5.%.loc26_4.2 (%.3ca) = impl_witness_access %T.as_wit.loc18_4.2, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_fn.loc26_4.2: = specific_function %impl.elem1.loc26_4.2, @S2(%L2.facet) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.cf2)] +// CHECK:STDOUT: %T.as_wit.iface0.loc18_4.2: = facet_access_witness %T.loc10_12.2, element0 [symbolic = %T.as_wit.iface0.loc18_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %L2.facet: %L2.type = facet_value %T.as_type.loc18_4.2, (%T.as_wit.iface0.loc18_4.2) [symbolic = %L2.facet (constants.%L2.facet)] +// CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type constants.%R2.type, %L2.facet [symbolic = %.loc18_4.2 (constants.%.f52)] +// CHECK:STDOUT: %impl.elem0.loc18_4.2: @Simple5.%.loc18_4.2 (%.f52) = impl_witness_access %T.as_wit.iface0.loc18_4.2, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_fn.loc18_4.2: = specific_function %impl.elem0.loc18_4.2, @R2(%L2.facet) [symbolic = %specific_fn.loc18_4.2 (constants.%specific_fn.49e)] +// CHECK:STDOUT: %.loc26_4.2: type = fn_type_with_self_type constants.%S2.type, %L2.facet [symbolic = %.loc26_4.2 (constants.%.f66)] +// CHECK:STDOUT: %impl.elem1.loc26_4.2: @Simple5.%.loc26_4.2 (%.f66) = impl_witness_access %T.as_wit.iface0.loc18_4.2, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_fn.loc26_4.2: = specific_function %impl.elem1.loc26_4.2, @S2(%L2.facet) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.901)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.loc10_12.1: %L2.type) { // CHECK:STDOUT: !entry: @@ -1499,17 +1499,17 @@ fn Works() { // 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_wit.loc18_4.1: = facet_access_witness %T.ref.loc18 [symbolic = %T.as_wit.loc18_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.973) = impl_witness_access %T.as_wit.loc18_4.1, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_fn.loc18_4.1: = specific_function %impl.elem0.loc18_4.1, @R2(constants.%L2.facet) [symbolic = %specific_fn.loc18_4.2 (constants.%specific_fn.e11)] +// CHECK:STDOUT: %T.as_wit.iface0.loc18_4.1: = facet_access_witness %T.ref.loc18, element0 [symbolic = %T.as_wit.iface0.loc18_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.f52) = impl_witness_access %T.as_wit.iface0.loc18_4.1, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_fn.loc18_4.1: = specific_function %impl.elem0.loc18_4.1, @R2(constants.%L2.facet) [symbolic = %specific_fn.loc18_4.2 (constants.%specific_fn.49e)] // CHECK:STDOUT: %R2.call: init %empty_tuple.type = call %specific_fn.loc18_4.1() // CHECK:STDOUT: %T.ref.loc26: %L2.type = name_ref T, %T.loc10_12.1 [symbolic = %T.loc10_12.2 (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_wit.loc26: = facet_access_witness %T.ref.loc26 [symbolic = %T.as_wit.loc18_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.3ca) = impl_witness_access %T.as_wit.loc26, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] -// CHECK:STDOUT: %specific_fn.loc26_4.1: = specific_function %impl.elem1.loc26_4.1, @S2(constants.%L2.facet) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.cf2)] +// CHECK:STDOUT: %T.as_wit.iface0.loc26: = facet_access_witness %T.ref.loc26, element0 [symbolic = %T.as_wit.iface0.loc18_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.f66) = impl_witness_access %T.as_wit.iface0.loc26, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %specific_fn.loc26_4.1: = specific_function %impl.elem1.loc26_4.1, @S2(constants.%L2.facet) [symbolic = %specific_fn.loc26_4.2 (constants.%specific_fn.901)] // CHECK:STDOUT: %addr: = addr_of [concrete = ] // CHECK:STDOUT: %S2.call: init %empty_tuple.type = call %specific_fn.loc26_4.1() // CHECK:STDOUT: return @@ -1585,7 +1585,7 @@ fn Works() { // CHECK:STDOUT: %impl_witness.a7a: = impl_witness (@impl.77d.%G.decl) [concrete] // CHECK:STDOUT: %G.type.486: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.001: %G.type.486 = struct_value () [concrete] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %C, %impl_witness.a7a [concrete] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %C, (%impl_witness.a7a) [concrete] // CHECK:STDOUT: %Fails.type: type = fn_type @Fails [concrete] // CHECK:STDOUT: %Fails: %Fails.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] @@ -1607,8 +1607,8 @@ fn Works() { // CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl.f92(type) [concrete] // CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.473: = complete_type_witness type [concrete] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, %impl_witness.3ea [concrete] -// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete] +// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %A.type, %Op.444 [concrete] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.444, @Op.2(type) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %A.type, %Op.specific_fn [concrete] @@ -1761,7 +1761,7 @@ fn Works() { // CHECK:STDOUT: %.loc24_7: ref %C = converted %.loc24_5.1, %.loc24_5.4 // CHECK:STDOUT: %A.ref.loc24_15: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc24_19: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc24: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc24: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc24_17.1: = bound_method %A.ref.loc24_15, %impl.elem0.loc24 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc24_17.2: = bound_method %A.ref.loc24_15, %specific_fn.loc24 [concrete = constants.%bound_method] @@ -1777,20 +1777,20 @@ fn Works() { // CHECK:STDOUT: %C.ref.loc32_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc32_24: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc32_28: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc32_26: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc32_26: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc32_26.1: = bound_method %A.ref.loc32_24, %impl.elem0.loc32_26 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc32_26: = specific_function %impl.elem0.loc32_26, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc32_26.2: = bound_method %A.ref.loc32_24, %specific_fn.loc32_26 [concrete = constants.%bound_method] // CHECK:STDOUT: %type.and.loc32_26: init type = call %bound_method.loc32_26.2(%A.ref.loc32_24, %A.ref.loc32_28) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc32_29.1: type = value_of_initializer %type.and.loc32_26 [concrete = constants.%A.type] // CHECK:STDOUT: %.loc32_29.2: type = converted %type.and.loc32_26, %.loc32_29.1 [concrete = constants.%A.type] -// CHECK:STDOUT: %A.facet.loc32: %A.type = facet_value constants.%C, constants.%impl_witness.a7a [concrete = constants.%A.facet] +// CHECK:STDOUT: %A.facet.loc32: %A.type = facet_value constants.%C, (constants.%impl_witness.a7a) [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc32_20: %A.type = converted %C.ref.loc32_18, %A.facet.loc32 [concrete = constants.%A.facet] // CHECK:STDOUT: %as_type.loc32: type = facet_access_type %.loc32_20 [concrete = constants.%C] // CHECK:STDOUT: %.loc32_30: type = converted %.loc32_20, %as_type.loc32 [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc32_35: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc32_39: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc32_37: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc32_37: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc32_37.1: = bound_method %A.ref.loc32_35, %impl.elem0.loc32_37 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc32_37: = specific_function %impl.elem0.loc32_37, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc32_37.2: = bound_method %A.ref.loc32_35, %specific_fn.loc32_37 [concrete = constants.%bound_method] @@ -1806,14 +1806,14 @@ fn Works() { // CHECK:STDOUT: %C.ref.loc40_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc40_24: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc40_28: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc40: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc40: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc40_26.1: = bound_method %A.ref.loc40_24, %impl.elem0.loc40 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc40: = specific_function %impl.elem0.loc40, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc40_26.2: = bound_method %A.ref.loc40_24, %specific_fn.loc40 [concrete = constants.%bound_method] // CHECK:STDOUT: %type.and.loc40: init type = call %bound_method.loc40_26.2(%A.ref.loc40_24, %A.ref.loc40_28) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc40_29.1: type = value_of_initializer %type.and.loc40 [concrete = constants.%A.type] // CHECK:STDOUT: %.loc40_29.2: type = converted %type.and.loc40, %.loc40_29.1 [concrete = constants.%A.type] -// CHECK:STDOUT: %A.facet.loc40: %A.type = facet_value constants.%C, constants.%impl_witness.a7a [concrete = constants.%A.facet] +// CHECK:STDOUT: %A.facet.loc40: %A.type = facet_value constants.%C, (constants.%impl_witness.a7a) [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc40_20: %A.type = converted %C.ref.loc40_18, %A.facet.loc40 [concrete = constants.%A.facet] // CHECK:STDOUT: %as_type.loc40: type = facet_access_type %.loc40_20 [concrete = constants.%C] // CHECK:STDOUT: %.loc40_30: type = converted %.loc40_20, %as_type.loc40 [concrete = constants.%C] @@ -1930,7 +1930,7 @@ fn Works() { // CHECK:STDOUT: %impl_witness.a7a: = impl_witness (@impl.77d.%G.decl) [concrete] // CHECK:STDOUT: %G.type.486: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.001: %G.type.486 = struct_value () [concrete] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %C, %impl_witness.a7a [concrete] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %C, (%impl_witness.a7a) [concrete] // CHECK:STDOUT: %Works.type: type = fn_type @Works [concrete] // CHECK:STDOUT: %Works: %Works.type = struct_value () [concrete] // CHECK:STDOUT: %BitAnd.type: type = facet_type <@BitAnd> [concrete] @@ -1951,12 +1951,12 @@ fn Works() { // CHECK:STDOUT: %Op.type.eb8: type = fn_type @Op.2, @impl.f92(type) [concrete] // CHECK:STDOUT: %Op.444: %Op.type.eb8 = struct_value () [concrete] // CHECK:STDOUT: %complete_type.473: = complete_type_witness type [concrete] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, %impl_witness.3ea [concrete] -// CHECK:STDOUT: %.d4d: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value type, (%impl_witness.3ea) [concrete] +// CHECK:STDOUT: %.2ac: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %A.type, %Op.444 [concrete] // CHECK:STDOUT: %Op.specific_fn: = specific_function %Op.444, @Op.2(type) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %A.type, %Op.specific_fn [concrete] -// CHECK:STDOUT: %.faa: type = fn_type_with_self_type %G.type.c3a, %A.facet [concrete] +// CHECK:STDOUT: %.db5: type = fn_type_with_self_type %G.type.c3a, %A.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2058,56 +2058,56 @@ fn Works() { // CHECK:STDOUT: %C.ref.loc15: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc15_7: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc15_11: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc15_9: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc15_9: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc15_9.1: = bound_method %A.ref.loc15_7, %impl.elem0.loc15_9 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15_9, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc15_9.2: = bound_method %A.ref.loc15_7, %specific_fn.loc15 [concrete = constants.%bound_method] // CHECK:STDOUT: %type.and.loc15: init type = call %bound_method.loc15_9.2(%A.ref.loc15_7, %A.ref.loc15_11) [concrete = constants.%A.type] // CHECK:STDOUT: %G.ref.loc15: %A.assoc_type = name_ref G, @A.%assoc0 [concrete = constants.%assoc0.773] -// CHECK:STDOUT: %A.facet.loc15: %A.type = facet_value constants.%C, constants.%impl_witness.a7a [concrete = constants.%A.facet] +// CHECK:STDOUT: %A.facet.loc15: %A.type = facet_value constants.%C, (constants.%impl_witness.a7a) [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc15: %A.type = converted %C.ref.loc15, %A.facet.loc15 [concrete = constants.%A.facet] -// CHECK:STDOUT: %as_wit.loc15: = facet_access_witness %.loc15 [concrete = constants.%impl_witness.a7a] -// CHECK:STDOUT: %impl.elem0.loc15_4: %.faa = impl_witness_access %as_wit.loc15, element0 [concrete = constants.%G.001] +// CHECK:STDOUT: %as_wit.iface0.loc15: = facet_access_witness %.loc15, element0 [concrete = constants.%impl_witness.a7a] +// CHECK:STDOUT: %impl.elem0.loc15_4: %.db5 = impl_witness_access %as_wit.iface0.loc15, element0 [concrete = constants.%G.001] // CHECK:STDOUT: %G.call.loc15: init %empty_tuple.type = call %impl.elem0.loc15_4() // CHECK:STDOUT: %C.ref.loc16: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc16_10: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc16_14: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc16_12: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc16_12: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc16_12.1: = bound_method %A.ref.loc16_10, %impl.elem0.loc16_12 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc16_12: = specific_function %impl.elem0.loc16_12, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_12.2: = bound_method %A.ref.loc16_10, %specific_fn.loc16_12 [concrete = constants.%bound_method] // CHECK:STDOUT: %type.and.loc16_12: init type = call %bound_method.loc16_12.2(%A.ref.loc16_10, %A.ref.loc16_14) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc16_15.1: type = value_of_initializer %type.and.loc16_12 [concrete = constants.%A.type] // CHECK:STDOUT: %.loc16_15.2: type = converted %type.and.loc16_12, %.loc16_15.1 [concrete = constants.%A.type] -// CHECK:STDOUT: %A.facet.loc16: %A.type = facet_value constants.%C, constants.%impl_witness.a7a [concrete = constants.%A.facet] +// CHECK:STDOUT: %A.facet.loc16: %A.type = facet_value constants.%C, (constants.%impl_witness.a7a) [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc16_6: %A.type = converted %C.ref.loc16, %A.facet.loc16 [concrete = constants.%A.facet] // CHECK:STDOUT: %A.ref.loc16_20: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc16_24: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc16_22: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc16_22: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc16_22.1: = bound_method %A.ref.loc16_20, %impl.elem0.loc16_22 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc16_22: = specific_function %impl.elem0.loc16_22, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc16_22.2: = bound_method %A.ref.loc16_20, %specific_fn.loc16_22 [concrete = constants.%bound_method] // CHECK:STDOUT: %type.and.loc16_22: init type = call %bound_method.loc16_22.2(%A.ref.loc16_20, %A.ref.loc16_24) [concrete = constants.%A.type] // CHECK:STDOUT: %G.ref.loc16: %A.assoc_type = name_ref G, @A.%assoc0 [concrete = constants.%assoc0.773] -// CHECK:STDOUT: %as_wit.loc16: = facet_access_witness %.loc16_6 [concrete = constants.%impl_witness.a7a] -// CHECK:STDOUT: %impl.elem0.loc16_17: %.faa = impl_witness_access %as_wit.loc16, element0 [concrete = constants.%G.001] +// CHECK:STDOUT: %as_wit.iface0.loc16: = facet_access_witness %.loc16_6, element0 [concrete = constants.%impl_witness.a7a] +// CHECK:STDOUT: %impl.elem0.loc16_17: %.db5 = impl_witness_access %as_wit.iface0.loc16, element0 [concrete = constants.%G.001] // CHECK:STDOUT: %G.call.loc16: init %empty_tuple.type = call %impl.elem0.loc16_17() // CHECK:STDOUT: %C.ref.loc17: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %A.ref.loc17_10: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %A.ref.loc17_14: type = name_ref A, file.%A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %impl.elem0.loc17_12: %.d4d = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] +// CHECK:STDOUT: %impl.elem0.loc17_12: %.2ac = impl_witness_access constants.%impl_witness.3ea, element0 [concrete = constants.%Op.444] // CHECK:STDOUT: %bound_method.loc17_12.1: = bound_method %A.ref.loc17_10, %impl.elem0.loc17_12 [concrete = constants.%Op.bound] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_12, @Op.2(type) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_12.2: = bound_method %A.ref.loc17_10, %specific_fn.loc17 [concrete = constants.%bound_method] // CHECK:STDOUT: %type.and.loc17: init type = call %bound_method.loc17_12.2(%A.ref.loc17_10, %A.ref.loc17_14) [concrete = constants.%A.type] // CHECK:STDOUT: %.loc17_15.1: type = value_of_initializer %type.and.loc17 [concrete = constants.%A.type] // CHECK:STDOUT: %.loc17_15.2: type = converted %type.and.loc17, %.loc17_15.1 [concrete = constants.%A.type] -// CHECK:STDOUT: %A.facet.loc17: %A.type = facet_value constants.%C, constants.%impl_witness.a7a [concrete = constants.%A.facet] +// CHECK:STDOUT: %A.facet.loc17: %A.type = facet_value constants.%C, (constants.%impl_witness.a7a) [concrete = constants.%A.facet] // CHECK:STDOUT: %.loc17_6: %A.type = converted %C.ref.loc17, %A.facet.loc17 [concrete = constants.%A.facet] // CHECK:STDOUT: %A.ref.loc17_19: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %G.ref.loc17: %A.assoc_type = name_ref G, @A.%assoc0 [concrete = constants.%assoc0.773] -// CHECK:STDOUT: %as_wit.loc17: = facet_access_witness %.loc17_6 [concrete = constants.%impl_witness.a7a] -// CHECK:STDOUT: %impl.elem0.loc17_17: %.faa = impl_witness_access %as_wit.loc17, element0 [concrete = constants.%G.001] +// CHECK:STDOUT: %as_wit.iface0.loc17: = facet_access_witness %.loc17_6, element0 [concrete = constants.%impl_witness.a7a] +// CHECK:STDOUT: %impl.elem0.loc17_17: %.db5 = impl_witness_access %as_wit.iface0.loc17, element0 [concrete = constants.%G.001] // CHECK:STDOUT: %G.call.loc17: init %empty_tuple.type = call %impl.elem0.loc17_17() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/no_prelude/default_fn.carbon b/toolchain/check/testdata/interface/no_prelude/default_fn.carbon index 221d09375f36..09c03992e4de 100644 --- a/toolchain/check/testdata/interface/no_prelude/default_fn.carbon +++ b/toolchain/check/testdata/interface/no_prelude/default_fn.carbon @@ -38,12 +38,12 @@ class C { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.4a2: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.eb2: %F.type.4a2 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.eab: type = fn_type_with_self_type %F.type.0b5, %I.facet [concrete] +// CHECK:STDOUT: %.56c: type = fn_type_with_self_type %F.type.0b5, %I.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -131,7 +131,7 @@ class C { // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c // CHECK:STDOUT: %I.ref: type = name_ref I, @C.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.eab = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.eb2] +// CHECK:STDOUT: %impl.elem0: %.56c = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%F.eb2] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc17: %C = bind_value %c.ref // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %bound_method(%.loc17) diff --git a/toolchain/check/testdata/interface/no_prelude/fail_assoc_fn_invalid_use.carbon b/toolchain/check/testdata/interface/no_prelude/fail_assoc_fn_invalid_use.carbon index d610b85064ae..df3390b09084 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_assoc_fn_invalid_use.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_assoc_fn_invalid_use.carbon @@ -39,11 +39,11 @@ fn Use(T:! I) { // 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.as_wit: = facet_access_witness %T [symbolic] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, %T.as_wit [symbolic] -// CHECK:STDOUT: %.de3: type = fn_type_with_self_type %F.type, %I.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.de3 = impl_witness_access %T.as_wit, element0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %.de3 [symbolic] +// CHECK:STDOUT: %T.as_wit.iface0: = facet_access_witness %T, element0 [symbolic] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type, (%T.as_wit.iface0) [symbolic] +// CHECK:STDOUT: %.3d7: type = fn_type_with_self_type %F.type, %I.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.3d7 = impl_witness_access %T.as_wit.iface0, element0 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %.3d7 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,11 +95,11 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T.as_type.loc13_4.2: type = facet_access_type %T.loc8_8.2 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] -// CHECK:STDOUT: %T.as_wit.loc13_4.2: = facet_access_witness %T.loc8_8.2 [symbolic = %T.as_wit.loc13_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc13_4.2, %T.as_wit.loc13_4.2 [symbolic = %I.facet (constants.%I.facet)] -// CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type constants.%F.type, %I.facet [symbolic = %.loc13_4.2 (constants.%.de3)] -// CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.de3) = impl_witness_access %T.as_wit.loc13_4.2, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %require_complete: = require_complete_type @Use.%.loc13_4.2 (%.de3) [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %T.as_wit.iface0.loc13_4.2: = facet_access_witness %T.loc8_8.2, element0 [symbolic = %T.as_wit.iface0.loc13_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %T.as_type.loc13_4.2, (%T.as_wit.iface0.loc13_4.2) [symbolic = %I.facet (constants.%I.facet)] +// CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type constants.%F.type, %I.facet [symbolic = %.loc13_4.2 (constants.%.3d7)] +// CHECK:STDOUT: %impl.elem0.loc13_4.2: @Use.%.loc13_4.2 (%.3d7) = impl_witness_access %T.as_wit.iface0.loc13_4.2, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %require_complete: = require_complete_type @Use.%.loc13_4.2 (%.3d7) [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.loc8_8.1: %I.type) { // CHECK:STDOUT: !entry: @@ -107,8 +107,8 @@ fn Use(T:! I) { // 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_wit.loc13_4.1: = facet_access_witness %T.ref [symbolic = %T.as_wit.loc13_4.2 (constants.%T.as_wit)] -// CHECK:STDOUT: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.de3) = impl_witness_access %T.as_wit.loc13_4.1, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %T.as_wit.iface0.loc13_4.1: = facet_access_witness %T.ref, element0 [symbolic = %T.as_wit.iface0.loc13_4.2 (constants.%T.as_wit.iface0)] +// CHECK:STDOUT: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.3d7) = impl_witness_access %T.as_wit.iface0.loc13_4.1, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/no_prelude/generic.carbon b/toolchain/check/testdata/interface/no_prelude/generic.carbon index adada165f324..836c7a4af3f1 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic.carbon @@ -91,7 +91,7 @@ fn G(T:! Generic(B)) { // CHECK:STDOUT: %impl_witness.49b: = impl_witness (@impl.90b.%F.decl) [concrete] // CHECK:STDOUT: %F.type.005: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.317: %F.type.005 = struct_value () [concrete] -// CHECK:STDOUT: %WithAssocFn.facet: %WithAssocFn.type.683 = facet_value %C, %impl_witness.49b [concrete] +// CHECK:STDOUT: %WithAssocFn.facet: %WithAssocFn.type.683 = facet_value %C, (%impl_witness.49b) [concrete] // CHECK:STDOUT: %X.val: %X = struct_value () [concrete] // CHECK:STDOUT: %N: %T.8b3 = bind_symbolic_name N, 1 [symbolic] // CHECK:STDOUT: %N.patt: %T.8b3 = symbolic_binding_pattern N, 1 [symbolic] diff --git a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon index 55595a8f2c95..97ef97a937d9 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon @@ -114,7 +114,7 @@ impl C as AddWith(C) { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%F.decl) [concrete] // CHECK:STDOUT: %F.type.c09: type = fn_type @F.2 [concrete] // CHECK:STDOUT: %F.e62: %F.type.c09 = struct_value () [concrete] -// CHECK:STDOUT: %AddWith.facet: %AddWith.type.e8e = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %AddWith.facet: %AddWith.type.e8e = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { diff --git a/toolchain/check/testdata/interface/no_prelude/local.carbon b/toolchain/check/testdata/interface/no_prelude/local.carbon index 21925b5540cc..275a56628dd8 100644 --- a/toolchain/check/testdata/interface/no_prelude/local.carbon +++ b/toolchain/check/testdata/interface/no_prelude/local.carbon @@ -34,8 +34,8 @@ fn F() { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%G.decl) [concrete] // CHECK:STDOUT: %G.type.c84: type = fn_type @G.2 [concrete] // CHECK:STDOUT: %G.5a2: %G.type.c84 = struct_value () [concrete] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, %impl_witness [concrete] -// CHECK:STDOUT: %.fbf: type = fn_type_with_self_type %G.type.bff, %I.facet [concrete] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %empty_tuple.type, (%impl_witness) [concrete] +// CHECK:STDOUT: %.7e3: type = fn_type_with_self_type %G.type.bff, %I.facet [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -95,7 +95,7 @@ fn F() { // CHECK:STDOUT: %.loc18_4.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %I.ref: type = name_ref I, %I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %G.ref: %I.assoc_type = name_ref G, @I.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0: %.fbf = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.5a2] +// CHECK:STDOUT: %impl.elem0: %.7e3 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%G.5a2] // CHECK:STDOUT: %bound_method: = bound_method %.loc18_4.1, %impl.elem0 // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc18_4.2: %empty_tuple.type = converted %.loc18_4.1, %empty_tuple [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/interface/todo_define_not_default.carbon b/toolchain/check/testdata/interface/todo_define_not_default.carbon index d2b2157e6956..a36228f9cf9d 100644 --- a/toolchain/check/testdata/interface/todo_define_not_default.carbon +++ b/toolchain/check/testdata/interface/todo_define_not_default.carbon @@ -43,8 +43,8 @@ interface I { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_42.20e, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_42.20e, %Convert.specific_fn [concrete] @@ -111,7 +111,7 @@ interface I { // CHECK:STDOUT: %N: %i32 = assoc_const_decl @N [concrete] { // CHECK:STDOUT: %assoc3: %I.assoc_type = assoc_entity element3, @I.%N [concrete = constants.%assoc3] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42.20e] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_19.1: = bound_method %int_42, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_19.2: = bound_method %int_42, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/ir/duplicate_name_same_line.carbon b/toolchain/check/testdata/ir/duplicate_name_same_line.carbon index 722fb9727c24..ce0154ec67f8 100644 --- a/toolchain/check/testdata/ir/duplicate_name_same_line.carbon +++ b/toolchain/check/testdata/ir/duplicate_name_same_line.carbon @@ -24,8 +24,8 @@ fn A() { if (true) { var n: i32 = 1; } if (true) { var n: i32 = 2; } } // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -66,7 +66,7 @@ fn A() { if (true) { var n: i32 = 1; } if (true) { var n: i32 = 2; } } // CHECK:STDOUT: } // CHECK:STDOUT: %n.var.loc11_22: ref %i32 = var n // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc11_22: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_22: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_22.1: = bound_method %int_1, %impl.elem0.loc11_22 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_22: = specific_function %impl.elem0.loc11_22, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_22.2: = bound_method %int_1, %specific_fn.loc11_22 [concrete = constants.%bound_method.9a1] @@ -91,7 +91,7 @@ fn A() { if (true) { var n: i32 = 1; } if (true) { var n: i32 = 2; } } // CHECK:STDOUT: } // CHECK:STDOUT: %n.var.loc11_52: ref %i32 = var n // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc11_52: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_52: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_52.1: = bound_method %int_2, %impl.elem0.loc11_52 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_52: = specific_function %impl.elem0.loc11_52, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_52.2: = bound_method %int_2, %specific_fn.loc11_52 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 50f409898962..4f4d63a31935 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -596,8 +596,8 @@ impl i32 as Empty { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -640,7 +640,7 @@ impl i32 as Empty { // CHECK:STDOUT: %int_32.loc5: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc5: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -668,8 +668,8 @@ impl i32 as Empty { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -720,7 +720,7 @@ impl i32 as Empty { // CHECK:STDOUT: %int_32.loc6: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc6: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc6: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_22.1: = bound_method %int_0, %impl.elem0.loc6 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc6: = specific_function %impl.elem0.loc6, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_22.2: = bound_method %int_0, %specific_fn.loc6 [concrete = constants.%bound_method.b6e] @@ -733,7 +733,7 @@ impl i32 as Empty { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %int_1, %impl.elem0.loc9 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc9: = specific_function %impl.elem0.loc9, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_11.2: = bound_method %int_1, %specific_fn.loc9 [concrete = constants.%bound_method.9a1] @@ -930,8 +930,8 @@ impl i32 as Empty { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -979,7 +979,7 @@ impl i32 as Empty { // CHECK:STDOUT: %int_32.loc11: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc11: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_20.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_20.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/let/convert.carbon b/toolchain/check/testdata/let/convert.carbon index 6e4e42f9d1ac..db07ff4e6a38 100644 --- a/toolchain/check/testdata/let/convert.carbon +++ b/toolchain/check/testdata/let/convert.carbon @@ -33,8 +33,8 @@ fn F() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -85,7 +85,7 @@ fn F() -> i32 { // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc12_36.1: %tuple.type.37f = tuple_literal (%int_1.loc12, %int_2, %int_3) -// CHECK:STDOUT: %impl.elem0.loc12_36.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_36.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_36.1: = bound_method %int_1.loc12, %impl.elem0.loc12_36.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc12_36.1: = specific_function %impl.elem0.loc12_36.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_36.2: = bound_method %int_1.loc12, %specific_fn.loc12_36.1 [concrete = constants.%bound_method.9a1] @@ -93,7 +93,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc12_36.2: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12_36.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %v.var, element0 // CHECK:STDOUT: %.loc12_36.3: init %i32 = initialize_from %.loc12_36.2 to %tuple.elem0 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc12_36.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_36.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_36.3: = bound_method %int_2, %impl.elem0.loc12_36.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc12_36.2: = specific_function %impl.elem0.loc12_36.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_36.4: = bound_method %int_2, %specific_fn.loc12_36.2 [concrete = constants.%bound_method.b92] @@ -101,7 +101,7 @@ fn F() -> i32 { // CHECK:STDOUT: %.loc12_36.4: init %i32 = converted %int_2, %int.convert_checked.loc12_36.2 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem1.loc12: ref %i32 = tuple_access %v.var, element1 // CHECK:STDOUT: %.loc12_36.5: init %i32 = initialize_from %.loc12_36.4 to %tuple.elem1.loc12 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc12_36.3: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_36.3: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_36.5: = bound_method %int_3, %impl.elem0.loc12_36.3 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc12_36.3: = specific_function %impl.elem0.loc12_36.3, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_36.6: = bound_method %int_3, %specific_fn.loc12_36.3 [concrete = constants.%bound_method.047] diff --git a/toolchain/check/testdata/let/fail_duplicate_decl.carbon b/toolchain/check/testdata/let/fail_duplicate_decl.carbon index 2a1040e1264b..2339727ded19 100644 --- a/toolchain/check/testdata/let/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/let/fail_duplicate_decl.carbon @@ -33,8 +33,8 @@ fn F() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -73,7 +73,7 @@ fn F() { // CHECK:STDOUT: %int_32.loc12: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc12: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_16.1: = bound_method %int_1, %impl.elem0.loc12 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_16.2: = bound_method %int_1, %specific_fn.loc12 [concrete = constants.%bound_method.9a1] @@ -89,7 +89,7 @@ fn F() { // CHECK:STDOUT: %int_32.loc20: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc20: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc20: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc20: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_16.1: = bound_method %int_2, %impl.elem0.loc20 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_16.2: = bound_method %int_2, %specific_fn.loc20 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/let/fail_modifiers.carbon b/toolchain/check/testdata/let/fail_modifiers.carbon index 9cd35c861971..e19357216f3d 100644 --- a/toolchain/check/testdata/let/fail_modifiers.carbon +++ b/toolchain/check/testdata/let/fail_modifiers.carbon @@ -95,8 +95,8 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -132,7 +132,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc15: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc15: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_24.1: = bound_method @__global_init.%int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_24.2: = bound_method @__global_init.%int_1.loc15, %specific_fn.loc15 [concrete = constants.%bound_method] @@ -147,7 +147,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc21: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc21: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc21: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_22.1: = bound_method @__global_init.%int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_22.2: = bound_method @__global_init.%int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method] @@ -162,7 +162,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc27: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc27: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc27: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc27: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_20.1: = bound_method @__global_init.%int_1.loc27, %impl.elem0.loc27 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_20.2: = bound_method @__global_init.%int_1.loc27, %specific_fn.loc27 [concrete = constants.%bound_method] @@ -177,7 +177,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc33: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc33: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc33: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc33: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc33_22.1: = bound_method @__global_init.%int_1.loc33, %impl.elem0.loc33 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc33: = specific_function %impl.elem0.loc33, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc33_22.2: = bound_method @__global_init.%int_1.loc33, %specific_fn.loc33 [concrete = constants.%bound_method] @@ -192,7 +192,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc46: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc46: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc46: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc46: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc46_28.1: = bound_method @__global_init.%int_1.loc46, %impl.elem0.loc46 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc46: = specific_function %impl.elem0.loc46, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc46_28.2: = bound_method @__global_init.%int_1.loc46, %specific_fn.loc46 [concrete = constants.%bound_method] @@ -207,7 +207,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc59: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc59: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc59: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc59: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc59_30.1: = bound_method @__global_init.%int_1.loc59, %impl.elem0.loc59 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc59: = specific_function %impl.elem0.loc59, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc59_30.2: = bound_method @__global_init.%int_1.loc59, %specific_fn.loc59 [concrete = constants.%bound_method] @@ -222,7 +222,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc72: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc72: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc72: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc72: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc72_32.1: = bound_method @__global_init.%int_1.loc72, %impl.elem0.loc72 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc72: = specific_function %impl.elem0.loc72, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc72_32.2: = bound_method @__global_init.%int_1.loc72, %specific_fn.loc72 [concrete = constants.%bound_method] @@ -237,7 +237,7 @@ protected protected let i: i32 = 1; // CHECK:STDOUT: %int_32.loc85: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc85: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc85: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc85: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc85_34.1: = bound_method @__global_init.%int_1.loc85, %impl.elem0.loc85 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc85: = specific_function %impl.elem0.loc85, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc85_34.2: = bound_method @__global_init.%int_1.loc85, %specific_fn.loc85 [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/let/global.carbon b/toolchain/check/testdata/let/global.carbon index 83a675c9d14f..eda338997aa4 100644 --- a/toolchain/check/testdata/let/global.carbon +++ b/toolchain/check/testdata/let/global.carbon @@ -23,8 +23,8 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -56,7 +56,7 @@ fn F() -> i32 { return n; } // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_14.1: = bound_method @__global_init.%int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_14.2: = bound_method @__global_init.%int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/let/shadowed_decl.carbon b/toolchain/check/testdata/let/shadowed_decl.carbon index 9e874943a91a..1ba370e4b1b3 100644 --- a/toolchain/check/testdata/let/shadowed_decl.carbon +++ b/toolchain/check/testdata/let/shadowed_decl.carbon @@ -27,8 +27,8 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -79,7 +79,7 @@ fn F(a: i32) -> i32 { // CHECK:STDOUT: %int_32.loc12: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc12: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_16.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_16.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/namespace/add_to_import.carbon b/toolchain/check/testdata/namespace/add_to_import.carbon index 9ffa7ac2853d..9b909061a1a7 100644 --- a/toolchain/check/testdata/namespace/add_to_import.carbon +++ b/toolchain/check/testdata/namespace/add_to_import.carbon @@ -53,8 +53,8 @@ var a: i32 = NS.A(); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -107,7 +107,7 @@ var a: i32 = NS.A(); // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/namespace/alias.carbon b/toolchain/check/testdata/namespace/alias.carbon index 2ba296e38f2e..18680d97b3b6 100644 --- a/toolchain/check/testdata/namespace/alias.carbon +++ b/toolchain/check/testdata/namespace/alias.carbon @@ -33,8 +33,8 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -104,7 +104,7 @@ fn D() -> i32 { return C(); } // CHECK:STDOUT: fn @A() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon index 0c7713b0d146..189e3a7ed3b4 100644 --- a/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon +++ b/toolchain/check/testdata/namespace/fail_decl_in_alias.carbon @@ -35,8 +35,8 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -76,7 +76,7 @@ fn ns.A() -> i32 { return 0; } // CHECK:STDOUT: fn @.1() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_28.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_28.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/namespace/shadow.carbon b/toolchain/check/testdata/namespace/shadow.carbon index 1c17c2da8329..49f56f6840f6 100644 --- a/toolchain/check/testdata/namespace/shadow.carbon +++ b/toolchain/check/testdata/namespace/shadow.carbon @@ -46,8 +46,8 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -109,7 +109,7 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %A.var: ref %i32 = var A // CHECK:STDOUT: %int_0.loc22: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc22: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc22: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_0.loc22, %impl.elem0.loc22 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem0.loc22, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_0.loc22, %specific_fn.loc22 [concrete = constants.%bound_method] @@ -127,7 +127,7 @@ fn N.M.B() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_0.loc27: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc27: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc27: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc27_11.1: = bound_method %int_0.loc27, %impl.elem0.loc27 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc27: = specific_function %impl.elem0.loc27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc27_11.2: = bound_method %int_0.loc27, %specific_fn.loc27 [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/operators/builtin/assignment.carbon b/toolchain/check/testdata/operators/builtin/assignment.carbon index 13088a3c0c86..dd1fda789095 100644 --- a/toolchain/check/testdata/operators/builtin/assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/assignment.carbon @@ -39,8 +39,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -111,7 +111,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var a // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] -// CHECK:STDOUT: %impl.elem0.loc12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_3.1: = bound_method %int_12, %impl.elem0.loc12 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_3.2: = bound_method %int_12, %specific_fn.loc12 [concrete = constants.%bound_method.dae] @@ -125,7 +125,7 @@ fn Main() { // CHECK:STDOUT: %a: ref %i32 = bind_name a, %a.var // CHECK:STDOUT: %a.ref.loc13: ref %i32 = name_ref a, %a // CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [concrete = constants.%int_9.988] -// CHECK:STDOUT: %impl.elem0.loc13: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %int_9, %impl.elem0.loc13 [concrete = constants.%Convert.bound.9e2] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %int_9, %specific_fn.loc13 [concrete = constants.%bound_method.cd3] @@ -140,7 +140,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc15: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc15: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc15_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc15, %int_2.loc15) -// CHECK:STDOUT: %impl.elem0.loc15_28.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15_28.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_28.1: = bound_method %int_1.loc15, %impl.elem0.loc15_28.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc15_28.1: = specific_function %impl.elem0.loc15_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_28.2: = bound_method %int_1.loc15, %specific_fn.loc15_28.1 [concrete = constants.%bound_method.9a1] @@ -148,7 +148,7 @@ fn Main() { // CHECK:STDOUT: %.loc15_28.2: init %i32 = converted %int_1.loc15, %int.convert_checked.loc15_28.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc15: ref %i32 = tuple_access %b.var, element0 // CHECK:STDOUT: %.loc15_28.3: init %i32 = initialize_from %.loc15_28.2 to %tuple.elem0.loc15 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc15_28.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc15_28.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc15_28.3: = bound_method %int_2.loc15, %impl.elem0.loc15_28.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc15_28.2: = specific_function %impl.elem0.loc15_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc15_28.4: = bound_method %int_2.loc15, %specific_fn.loc15_28.2 [concrete = constants.%bound_method.b92] @@ -172,7 +172,7 @@ fn Main() { // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %tuple.elem0.loc16: ref %i32 = tuple_access %b.ref.loc16, element0 // CHECK:STDOUT: %int_3.loc16: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc16: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_7.1: = bound_method %int_3.loc16, %impl.elem0.loc16 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_7.2: = bound_method %int_3.loc16, %specific_fn.loc16 [concrete = constants.%bound_method.047] @@ -183,7 +183,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %tuple.elem1.loc17: ref %i32 = tuple_access %b.ref.loc17, element1 // CHECK:STDOUT: %int_4.loc17: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc17: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_7.1: = bound_method %int_4.loc17, %impl.elem0.loc17 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_7.2: = bound_method %int_4.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.1da] @@ -198,7 +198,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc19: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc19_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc19, %int_2.loc19) -// CHECK:STDOUT: %impl.elem0.loc19_46.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc19_46.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_46.1: = bound_method %int_1.loc19, %impl.elem0.loc19_46.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc19_46.1: = specific_function %impl.elem0.loc19_46.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_46.2: = bound_method %int_1.loc19, %specific_fn.loc19_46.1 [concrete = constants.%bound_method.9a1] @@ -206,7 +206,7 @@ fn Main() { // CHECK:STDOUT: %.loc19_46.2: init %i32 = converted %int_1.loc19, %int.convert_checked.loc19_46.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc19_46.3: ref %i32 = struct_access %c.var, element0 // CHECK:STDOUT: %.loc19_46.4: init %i32 = initialize_from %.loc19_46.2 to %.loc19_46.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc19_46.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc19_46.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc19_46.3: = bound_method %int_2.loc19, %impl.elem0.loc19_46.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc19_46.2: = specific_function %impl.elem0.loc19_46.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc19_46.4: = bound_method %int_2.loc19, %specific_fn.loc19_46.2 [concrete = constants.%bound_method.b92] @@ -228,7 +228,7 @@ fn Main() { // CHECK:STDOUT: %c.ref.loc20: ref %struct_type.a.b.501 = name_ref c, %c // CHECK:STDOUT: %.loc20_4: ref %i32 = struct_access %c.ref.loc20, element0 // CHECK:STDOUT: %int_3.loc20: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc20: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc20: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc20_7.1: = bound_method %int_3.loc20, %impl.elem0.loc20 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc20_7.2: = bound_method %int_3.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.047] @@ -238,7 +238,7 @@ fn Main() { // CHECK:STDOUT: %c.ref.loc21: ref %struct_type.a.b.501 = name_ref c, %c // CHECK:STDOUT: %.loc21_4: ref %i32 = struct_access %c.ref.loc21, element1 // CHECK:STDOUT: %int_4.loc21: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc21: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_7.1: = bound_method %int_4.loc21, %impl.elem0.loc21 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_7.2: = bound_method %int_4.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.1da] @@ -263,7 +263,7 @@ fn Main() { // CHECK:STDOUT: %.loc24_4: %ptr.235 = bind_value %p.ref.loc24 // CHECK:STDOUT: %.loc24_3: ref %i32 = deref %.loc24_4 // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc24: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc24: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc24_6.1: = bound_method %int_5, %impl.elem0.loc24 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn.loc24: = specific_function %impl.elem0.loc24, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc24_6.2: = bound_method %int_5, %specific_fn.loc24 [concrete = constants.%bound_method.a25] @@ -287,7 +287,7 @@ fn Main() { // CHECK:STDOUT: %.loc26_5: %ptr.235 = block_arg !if.expr.result // CHECK:STDOUT: %.loc26_3: ref %i32 = deref %.loc26_5 // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10.64f] -// CHECK:STDOUT: %impl.elem0.loc26: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc26: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_29.1: = bound_method %int_10, %impl.elem0.loc26 [concrete = constants.%Convert.bound.491] // CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_29.2: = bound_method %int_10, %specific_fn.loc26 [concrete = constants.%bound_method.5ba] 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 e75665c8b3e6..43aa15cd0fb9 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 @@ -73,8 +73,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -145,7 +145,7 @@ fn Main() { // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %F.call: init %i32 = call %F.ref() // CHECK:STDOUT: %int_1.loc23: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc23: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc23: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_7.1: = bound_method %int_1.loc23, %impl.elem0.loc23 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_7.2: = bound_method %int_1.loc23, %specific_fn.loc23 [concrete = constants.%bound_method.9a1] @@ -173,7 +173,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc29: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc29: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc29_3.1: = bound_method %int_0, %impl.elem0.loc29 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc29: = specific_function %impl.elem0.loc29, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc29_3.2: = bound_method %int_0, %specific_fn.loc29 [concrete = constants.%bound_method.b6e] @@ -191,7 +191,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc34: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc34: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc34_17.1: %tuple.type.f94 = tuple_literal (%int_1.loc34, %int_2.loc34) -// CHECK:STDOUT: %impl.elem0.loc34_17.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc34_17.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc34_17.1: = bound_method %int_1.loc34, %impl.elem0.loc34_17.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc34_17.1: = specific_function %impl.elem0.loc34_17.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc34_17.2: = bound_method %int_1.loc34, %specific_fn.loc34_17.1 [concrete = constants.%bound_method.9a1] @@ -199,7 +199,7 @@ fn Main() { // CHECK:STDOUT: %.loc34_17.2: init %i32 = converted %int_1.loc34, %int.convert_checked.loc34_17.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc34: %i32 = tuple_access %.loc34_8.1, element0 // CHECK:STDOUT: %.loc34_17.3: init %i32 = initialize_from %.loc34_17.2 to %tuple.elem0.loc34 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc34_17.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc34_17.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc34_17.3: = bound_method %int_2.loc34, %impl.elem0.loc34_17.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc34_17.2: = specific_function %impl.elem0.loc34_17.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc34_17.4: = bound_method %int_2.loc34, %specific_fn.loc34_17.2 [concrete = constants.%bound_method.b92] @@ -242,7 +242,7 @@ fn Main() { // CHECK:STDOUT: %int_1.loc49: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc49: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc49: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc49_12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc49_12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc49_12.1: = bound_method %int_1.loc49, %impl.elem0.loc49_12 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc49_12: = specific_function %impl.elem0.loc49_12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc49_12.2: = bound_method %int_1.loc49, %specific_fn.loc49_12 [concrete = constants.%bound_method.9a1] @@ -253,7 +253,7 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc49: // CHECK:STDOUT: %int_2.loc49: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc49_19: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc49_19: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc49_19.1: = bound_method %int_2.loc49, %impl.elem0.loc49_19 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc49_19: = specific_function %impl.elem0.loc49_19, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc49_19.2: = bound_method %int_2.loc49, %specific_fn.loc49_19 [concrete = constants.%bound_method.b92] @@ -265,7 +265,7 @@ fn Main() { // CHECK:STDOUT: !if.expr.result.loc49: // CHECK:STDOUT: %.loc49_4: %i32 = block_arg !if.expr.result.loc49 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %int_3.loc49: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc49_27: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc49_27: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc49_27.1: = bound_method %int_3.loc49, %impl.elem0.loc49_27 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc49_27: = specific_function %impl.elem0.loc49_27, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc49_27.2: = bound_method %int_3.loc49, %specific_fn.loc49_27 [concrete = constants.%bound_method.047] @@ -298,7 +298,7 @@ fn Main() { // CHECK:STDOUT: !if.expr.result.loc57: // CHECK:STDOUT: %.loc57_4: %i32 = block_arg !if.expr.result.loc57 // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10.64f] -// CHECK:STDOUT: %impl.elem0.loc57: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc57: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc57_27.1: = bound_method %int_10, %impl.elem0.loc57 [concrete = constants.%Convert.bound.491] // CHECK:STDOUT: %specific_fn.loc57: = specific_function %impl.elem0.loc57, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc57_27.2: = bound_method %int_10, %specific_fn.loc57 [concrete = constants.%bound_method.5ba] 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 ddf317f6ff98..2d49731592e4 100644 --- a/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_redundant_compound_access.carbon @@ -37,8 +37,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -82,7 +82,7 @@ fn Main() { // CHECK:STDOUT: fn @F() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_25.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_25.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] @@ -100,7 +100,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var a // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_3.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_3.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method.047] 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 106fbf93f930..a1e59c65e70e 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_assignment.carbon @@ -33,8 +33,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -68,7 +68,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var a // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_3.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_3.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/operators/overloaded/add.carbon b/toolchain/check/testdata/operators/overloaded/add.carbon index a91eb0870972..1c990d5478f9 100644 --- a/toolchain/check/testdata/operators/overloaded/add.carbon +++ b/toolchain/check/testdata/operators/overloaded/add.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.796: = impl_witness (@impl.b32.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.7a3: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.c84: %Op.type.7a3 = struct_value () [concrete] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %C, %impl_witness.796 [concrete] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %C, (%impl_witness.796) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %AddAssign.type: type = facet_type <@AddAssign> [concrete] // CHECK:STDOUT: %Op.type.421: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.0b8: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.d8e: %Op.type.0b8 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssign.facet: %AddAssign.type = facet_value %C, %impl_witness.95d [concrete] +// CHECK:STDOUT: %AddAssign.facet: %AddAssign.type = facet_value %C, (%impl_witness.95d) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.4bb: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] +// CHECK:STDOUT: %.c2e: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.499: type = fn_type_with_self_type %Op.type.421, %AddAssign.facet [concrete] +// CHECK:STDOUT: %.22d: type = fn_type_with_self_type %Op.type.421, %AddAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.4bb = impl_witness_access constants.%impl_witness.796, element0 [concrete = constants.%Op.c84] +// CHECK:STDOUT: %impl.elem0: %.c2e = impl_witness_access constants.%impl_witness.796, element0 [concrete = constants.%Op.c84] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.499 = impl_witness_access constants.%impl_witness.95d, element0 [concrete = constants.%Op.d8e] +// CHECK:STDOUT: %impl.elem0: %.22d = impl_witness_access constants.%impl_witness.95d, element0 [concrete = constants.%Op.d8e] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/bit_and.carbon b/toolchain/check/testdata/operators/overloaded/bit_and.carbon index d177a83862bc..d0f65f50e01a 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_and.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_and.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.5af: = impl_witness (@impl.c1a.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.45e: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.c43: %Op.type.45e = struct_value () [concrete] -// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %C, %impl_witness.5af [concrete] +// CHECK:STDOUT: %BitAnd.facet: %BitAnd.type = facet_value %C, (%impl_witness.5af) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %BitAndAssign.type: type = facet_type <@BitAndAssign> [concrete] // CHECK:STDOUT: %Op.type.93f: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.969: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.747: %Op.type.969 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssign.facet: %BitAndAssign.type = facet_value %C, %impl_witness.762 [concrete] +// CHECK:STDOUT: %BitAndAssign.facet: %BitAndAssign.type = facet_value %C, (%impl_witness.762) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.9a0: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] +// CHECK:STDOUT: %.93d: type = fn_type_with_self_type %Op.type.27a, %BitAnd.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.ade: type = fn_type_with_self_type %Op.type.93f, %BitAndAssign.facet [concrete] +// CHECK:STDOUT: %.ab0: type = fn_type_with_self_type %Op.type.93f, %BitAndAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.9a0 = impl_witness_access constants.%impl_witness.5af, element0 [concrete = constants.%Op.c43] +// CHECK:STDOUT: %impl.elem0: %.93d = impl_witness_access constants.%impl_witness.5af, element0 [concrete = constants.%Op.c43] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.ade = impl_witness_access constants.%impl_witness.762, element0 [concrete = constants.%Op.747] +// CHECK:STDOUT: %impl.elem0: %.ab0 = impl_witness_access constants.%impl_witness.762, element0 [concrete = constants.%Op.747] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon index 0e4e2092b1cb..e84298d7fedd 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon @@ -35,11 +35,11 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %impl_witness.40c: = impl_witness (@impl.5a3.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.544: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.bf2: %Op.type.544 = struct_value () [concrete] -// CHECK:STDOUT: %BitComplement.facet: %BitComplement.type = facet_value %C, %impl_witness.40c [concrete] +// CHECK:STDOUT: %BitComplement.facet: %BitComplement.type = facet_value %C, (%impl_witness.40c) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.784: type = fn_type_with_self_type %Op.type.f25, %BitComplement.facet [concrete] +// CHECK:STDOUT: %.f35: type = fn_type_with_self_type %Op.type.f25, %BitComplement.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -120,7 +120,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return.param_patt: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %.784 = impl_witness_access constants.%impl_witness.40c, element0 [concrete = constants.%Op.bf2] +// CHECK:STDOUT: %impl.elem0: %.f35 = impl_witness_access constants.%impl_witness.40c, element0 [concrete = constants.%Op.bf2] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref) to %.loc23 diff --git a/toolchain/check/testdata/operators/overloaded/bit_or.carbon b/toolchain/check/testdata/operators/overloaded/bit_or.carbon index 5dc94415d678..d4a27af6f3fe 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_or.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_or.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.e68: = impl_witness (@impl.8f6.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.951: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.59a: %Op.type.951 = struct_value () [concrete] -// CHECK:STDOUT: %BitOr.facet: %BitOr.type = facet_value %C, %impl_witness.e68 [concrete] +// CHECK:STDOUT: %BitOr.facet: %BitOr.type = facet_value %C, (%impl_witness.e68) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %BitOrAssign.type: type = facet_type <@BitOrAssign> [concrete] // CHECK:STDOUT: %Op.type.099: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.8ba: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.b27: %Op.type.8ba = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssign.facet: %BitOrAssign.type = facet_value %C, %impl_witness.85b [concrete] +// CHECK:STDOUT: %BitOrAssign.facet: %BitOrAssign.type = facet_value %C, (%impl_witness.85b) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.88d: type = fn_type_with_self_type %Op.type.9bb, %BitOr.facet [concrete] +// CHECK:STDOUT: %.bd4: type = fn_type_with_self_type %Op.type.9bb, %BitOr.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.ecb: type = fn_type_with_self_type %Op.type.099, %BitOrAssign.facet [concrete] +// CHECK:STDOUT: %.2fb: type = fn_type_with_self_type %Op.type.099, %BitOrAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.88d = impl_witness_access constants.%impl_witness.e68, element0 [concrete = constants.%Op.59a] +// CHECK:STDOUT: %impl.elem0: %.bd4 = impl_witness_access constants.%impl_witness.e68, element0 [concrete = constants.%Op.59a] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.ecb = impl_witness_access constants.%impl_witness.85b, element0 [concrete = constants.%Op.b27] +// CHECK:STDOUT: %impl.elem0: %.2fb = impl_witness_access constants.%impl_witness.85b, element0 [concrete = constants.%Op.b27] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon index a1d3c1e0bb77..2ecac953a440 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.01d: = impl_witness (@impl.2e5.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.672: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.442: %Op.type.672 = struct_value () [concrete] -// CHECK:STDOUT: %BitXor.facet: %BitXor.type = facet_value %C, %impl_witness.01d [concrete] +// CHECK:STDOUT: %BitXor.facet: %BitXor.type = facet_value %C, (%impl_witness.01d) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %BitXorAssign.type: type = facet_type <@BitXorAssign> [concrete] // CHECK:STDOUT: %Op.type.58d: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.8ab: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.67d: %Op.type.8ab = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssign.facet: %BitXorAssign.type = facet_value %C, %impl_witness.8dc [concrete] +// CHECK:STDOUT: %BitXorAssign.facet: %BitXorAssign.type = facet_value %C, (%impl_witness.8dc) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.8f3: type = fn_type_with_self_type %Op.type.e96, %BitXor.facet [concrete] +// CHECK:STDOUT: %.0d1: type = fn_type_with_self_type %Op.type.e96, %BitXor.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.1c2: type = fn_type_with_self_type %Op.type.58d, %BitXorAssign.facet [concrete] +// CHECK:STDOUT: %.502: type = fn_type_with_self_type %Op.type.58d, %BitXorAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.8f3 = impl_witness_access constants.%impl_witness.01d, element0 [concrete = constants.%Op.442] +// CHECK:STDOUT: %impl.elem0: %.0d1 = impl_witness_access constants.%impl_witness.01d, element0 [concrete = constants.%Op.442] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.1c2 = impl_witness_access constants.%impl_witness.8dc, element0 [concrete = constants.%Op.67d] +// CHECK:STDOUT: %impl.elem0: %.502 = impl_witness_access constants.%impl_witness.8dc, element0 [concrete = constants.%Op.67d] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/dec.carbon b/toolchain/check/testdata/operators/overloaded/dec.carbon index 3efba7186634..b85ebb0f0689 100644 --- a/toolchain/check/testdata/operators/overloaded/dec.carbon +++ b/toolchain/check/testdata/operators/overloaded/dec.carbon @@ -36,11 +36,11 @@ fn TestOp() { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.9e0: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.cf9: %Op.type.9e0 = struct_value () [concrete] -// CHECK:STDOUT: %Dec.facet: %Dec.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Dec.facet: %Dec.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.01d: type = fn_type_with_self_type %Op.type.633, %Dec.facet [concrete] +// CHECK:STDOUT: %.369: type = fn_type_with_self_type %Op.type.633, %Dec.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -113,7 +113,7 @@ fn TestOp() { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %impl.elem0: %.01d = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.cf9] +// CHECK:STDOUT: %impl.elem0: %.369 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.cf9] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.ref // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/operators/overloaded/div.carbon b/toolchain/check/testdata/operators/overloaded/div.carbon index d7a8ac4dde4a..7750a9aae12a 100644 --- a/toolchain/check/testdata/operators/overloaded/div.carbon +++ b/toolchain/check/testdata/operators/overloaded/div.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.745: = impl_witness (@impl.534.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.750: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.21e: %Op.type.750 = struct_value () [concrete] -// CHECK:STDOUT: %Div.facet: %Div.type = facet_value %C, %impl_witness.745 [concrete] +// CHECK:STDOUT: %Div.facet: %Div.type = facet_value %C, (%impl_witness.745) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %DivAssign.type: type = facet_type <@DivAssign> [concrete] // CHECK:STDOUT: %Op.type.b95: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.b04: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.27c: %Op.type.b04 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssign.facet: %DivAssign.type = facet_value %C, %impl_witness.d13 [concrete] +// CHECK:STDOUT: %DivAssign.facet: %DivAssign.type = facet_value %C, (%impl_witness.d13) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.a6e: type = fn_type_with_self_type %Op.type.784, %Div.facet [concrete] +// CHECK:STDOUT: %.277: type = fn_type_with_self_type %Op.type.784, %Div.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.0f9: type = fn_type_with_self_type %Op.type.b95, %DivAssign.facet [concrete] +// CHECK:STDOUT: %.65b: type = fn_type_with_self_type %Op.type.b95, %DivAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.a6e = impl_witness_access constants.%impl_witness.745, element0 [concrete = constants.%Op.21e] +// CHECK:STDOUT: %impl.elem0: %.277 = impl_witness_access constants.%impl_witness.745, element0 [concrete = constants.%Op.21e] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.0f9 = impl_witness_access constants.%impl_witness.d13, element0 [concrete = constants.%Op.27c] +// CHECK:STDOUT: %impl.elem0: %.65b = impl_witness_access constants.%impl_witness.d13, element0 [concrete = constants.%Op.27c] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/eq.carbon b/toolchain/check/testdata/operators/overloaded/eq.carbon index e4b6c97bf7f7..f115b688f7ec 100644 --- a/toolchain/check/testdata/operators/overloaded/eq.carbon +++ b/toolchain/check/testdata/operators/overloaded/eq.carbon @@ -99,13 +99,13 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %Equal.f96: %Equal.type.b4a = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type.a7d: type = fn_type @NotEqual.2 [concrete] // CHECK:STDOUT: %NotEqual.c3f: %NotEqual.type.a7d = struct_value () [concrete] -// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %TestEqual.type: type = fn_type @TestEqual [concrete] // CHECK:STDOUT: %TestEqual: %TestEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.dad: type = fn_type_with_self_type %Equal.type.79c, %Eq.facet [concrete] +// CHECK:STDOUT: %.cc5: type = fn_type_with_self_type %Equal.type.79c, %Eq.facet [concrete] // CHECK:STDOUT: %TestNotEqual.type: type = fn_type @TestNotEqual [concrete] // CHECK:STDOUT: %TestNotEqual: %TestNotEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.d23: type = fn_type_with_self_type %NotEqual.type.e6c, %Eq.facet [concrete] +// CHECK:STDOUT: %.ee3: type = fn_type_with_self_type %NotEqual.type.e6c, %Eq.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -240,7 +240,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.dad = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.f96] +// CHECK:STDOUT: %impl.elem0: %.cc5 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.f96] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Equal.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: %.loc12_16.1: bool = value_of_initializer %Equal.call @@ -252,7 +252,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.d23 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.c3f] +// CHECK:STDOUT: %impl.elem1: %.ee3 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%NotEqual.c3f] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %NotEqual.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: %.loc16_16.1: bool = value_of_initializer %NotEqual.call @@ -372,10 +372,10 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %Equal.f96: %Equal.type.b4a = struct_value () [concrete] // CHECK:STDOUT: %NotEqual.type.a7d: type = fn_type @NotEqual.2 [concrete] // CHECK:STDOUT: %NotEqual.c3f: %NotEqual.type.a7d = struct_value () [concrete] -// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Eq.facet: %Eq.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %TestRhsBad.type: type = fn_type @TestRhsBad [concrete] // CHECK:STDOUT: %TestRhsBad: %TestRhsBad.type = struct_value () [concrete] -// CHECK:STDOUT: %.dad: type = fn_type_with_self_type %Equal.type.79c, %Eq.facet [concrete] +// CHECK:STDOUT: %.cc5: type = fn_type_with_self_type %Equal.type.79c, %Eq.facet [concrete] // CHECK:STDOUT: %TestLhsBad.type: type = fn_type @TestLhsBad [concrete] // CHECK:STDOUT: %TestLhsBad: %TestLhsBad.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -523,7 +523,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %D = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.dad = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.f96] +// CHECK:STDOUT: %impl.elem0: %.cc5 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Equal.f96] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23_15: %C = converted %b.ref, [concrete = ] // CHECK:STDOUT: %Equal.call: init bool = call %bound_method(%a.ref, ) diff --git a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon index 024ff9e2805f..e0521a9da257 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon @@ -54,19 +54,19 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.0c9: %Op.type.73a = struct_value () [concrete] -// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, %impl_witness.ec3 [concrete] +// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, (%impl_witness.ec3) [concrete] // CHECK:STDOUT: %AddAssign.type: type = facet_type <@AddAssign> [concrete] // CHECK:STDOUT: %Op.type.421: type = fn_type @Op.3 [concrete] // CHECK:STDOUT: %impl_witness.95d: = impl_witness (@impl.14c.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.0b8: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.d8e: %Op.type.0b8 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssign.facet: %AddAssign.type = facet_value %C, %impl_witness.95d [concrete] +// CHECK:STDOUT: %AddAssign.facet: %AddAssign.type = facet_value %C, (%impl_witness.95d) [concrete] // CHECK:STDOUT: %TestIncNonRef.type: type = fn_type @TestIncNonRef [concrete] // CHECK:STDOUT: %TestIncNonRef: %TestIncNonRef.type = struct_value () [concrete] -// CHECK:STDOUT: %.e6d: type = fn_type_with_self_type %Op.type.e3a, %Inc.facet [concrete] +// CHECK:STDOUT: %.295: type = fn_type_with_self_type %Op.type.e3a, %Inc.facet [concrete] // CHECK:STDOUT: %TestAddAssignNonRef.type: type = fn_type @TestAddAssignNonRef [concrete] // CHECK:STDOUT: %TestAddAssignNonRef: %TestAddAssignNonRef.type = struct_value () [concrete] -// CHECK:STDOUT: %.499: type = fn_type_with_self_type %Op.type.421, %AddAssign.facet [concrete] +// CHECK:STDOUT: %.22d: type = fn_type_with_self_type %Op.type.421, %AddAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -184,7 +184,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: fn @TestIncNonRef(%a.param_patt: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %.e6d = impl_witness_access constants.%impl_witness.ec3, element0 [concrete = constants.%Op.0c9] +// CHECK:STDOUT: %impl.elem0: %.295 = impl_witness_access constants.%impl_witness.ec3, element0 [concrete = constants.%Op.0c9] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc30: ref %C = temporary_storage // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc30 @@ -196,7 +196,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.499 = impl_witness_access constants.%impl_witness.95d, element0 [concrete = constants.%Op.d8e] +// CHECK:STDOUT: %impl.elem0: %.22d = impl_witness_access constants.%impl_witness.95d, element0 [concrete = constants.%Op.d8e] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc41: ref %C = temporary_storage // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc41 diff --git a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon index 846142055b81..d973668836ef 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon @@ -42,8 +42,8 @@ fn G(n: i32) { // CHECK:STDOUT: %impl_witness.01d: = impl_witness (imports.%Core.import_ref.344), @impl.2c2(%int_32) [concrete] // CHECK:STDOUT: %Op.type.210: type = fn_type @Op.2, @impl.2c2(%int_32) [concrete] // CHECK:STDOUT: %Op.c82: %Op.type.210 = struct_value () [concrete] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32, %impl_witness.01d [concrete] -// CHECK:STDOUT: %.ede: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %i32, (%impl_witness.01d) [concrete] +// CHECK:STDOUT: %.f1a: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -89,7 +89,7 @@ fn G(n: i32) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %undeclared.ref: = name_ref undeclared, [concrete = ] -// CHECK:STDOUT: %impl.elem0: %.ede = impl_witness_access constants.%impl_witness.01d, element0 [concrete = constants.%Op.c82] +// CHECK:STDOUT: %impl.elem0: %.f1a = impl_witness_access constants.%impl_witness.01d, element0 [concrete = constants.%Op.c82] // CHECK:STDOUT: %bound_method: = bound_method %n.ref, %impl.elem0 // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon index 5b69752a777d..50dcb5915181 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon @@ -62,21 +62,21 @@ fn TestAssign(b: D) { // CHECK:STDOUT: %impl_witness.796: = impl_witness (@impl.b32.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.7a3: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.c84: %Op.type.7a3 = struct_value () [concrete] -// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %C, %impl_witness.796 [concrete] +// CHECK:STDOUT: %Add.facet: %Add.type = facet_value %C, (%impl_witness.796) [concrete] // CHECK:STDOUT: %AddAssign.type: type = facet_type <@AddAssign> [concrete] // CHECK:STDOUT: %Op.type.421: type = fn_type @Op.3 [concrete] // CHECK:STDOUT: %impl_witness.95d: = impl_witness (@impl.14c.%Op.decl) [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.0b8: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.d8e: %Op.type.0b8 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssign.facet: %AddAssign.type = facet_value %C, %impl_witness.95d [concrete] +// CHECK:STDOUT: %AddAssign.facet: %AddAssign.type = facet_value %C, (%impl_witness.95d) [concrete] // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] -// CHECK:STDOUT: %.4bb: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] +// CHECK:STDOUT: %.c2e: type = fn_type_with_self_type %Op.type.545, %Add.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.499: type = fn_type_with_self_type %Op.type.421, %AddAssign.facet [concrete] +// CHECK:STDOUT: %.22d: type = fn_type_with_self_type %Op.type.421, %AddAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -217,7 +217,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %D = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.4bb = impl_witness_access constants.%impl_witness.796, element0 [concrete = constants.%Op.c84] +// CHECK:STDOUT: %impl.elem0: %.c2e = impl_witness_access constants.%impl_witness.796, element0 [concrete = constants.%Op.c84] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23: ref %C = splice_block %return {} // CHECK:STDOUT: %.loc34: %C = converted %b.ref, [concrete = ] @@ -240,7 +240,7 @@ fn TestAssign(b: D) { // CHECK:STDOUT: %a: ref %C = bind_name a, %a.var // CHECK:STDOUT: %a.ref: ref %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %D = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.499 = impl_witness_access constants.%impl_witness.95d, element0 [concrete = constants.%Op.d8e] +// CHECK:STDOUT: %impl.elem0: %.22d = impl_witness_access constants.%impl_witness.95d, element0 [concrete = constants.%Op.d8e] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %a.ref // CHECK:STDOUT: %.loc49: %C = converted %b.ref, [concrete = ] diff --git a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon index ca75c629ccc8..9807e41fa1eb 100644 --- a/toolchain/check/testdata/operators/overloaded/implicit_as.carbon +++ b/toolchain/check/testdata/operators/overloaded/implicit_as.carbon @@ -50,13 +50,13 @@ fn Test() { // CHECK:STDOUT: %impl_witness.226: = impl_witness (@impl.8f9.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.853: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.08a: %Convert.type.853 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a10: %ImplicitAs.type.ac8 = facet_value %i32, %impl_witness.226 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.034: %ImplicitAs.type.ac8 = facet_value %i32, (%impl_witness.226) [concrete] // CHECK:STDOUT: %ImplicitAs.type.205: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %Convert.type.1b6: type = fn_type @Convert.1, @ImplicitAs(%i32) [concrete] // CHECK:STDOUT: %impl_witness.c53: = impl_witness (@impl.c94.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.8a1: type = fn_type @Convert.3 [concrete] // CHECK:STDOUT: %Convert.c7a: %Convert.type.8a1 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.208: %ImplicitAs.type.205 = facet_value %X, %impl_witness.c53 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.601: %ImplicitAs.type.205 = facet_value %X, (%impl_witness.c53) [concrete] // CHECK:STDOUT: %Sink_i32.type: type = fn_type @Sink_i32 [concrete] // CHECK:STDOUT: %Sink_i32: %Sink_i32.type = struct_value () [concrete] // CHECK:STDOUT: %Sink_X.type: type = fn_type @Sink_X [concrete] @@ -70,9 +70,9 @@ fn Test() { // CHECK:STDOUT: %Test.type: type = fn_type @Test [concrete] // CHECK:STDOUT: %Test: %Test.type = struct_value () [concrete] // CHECK:STDOUT: %Source.specific_fn.363: = specific_function %Source, @Source(%X) [concrete] -// CHECK:STDOUT: %.d2d: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.208 [concrete] +// CHECK:STDOUT: %.28a: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.601 [concrete] // CHECK:STDOUT: %Source.specific_fn.cc7: = specific_function %Source, @Source(%i32) [concrete] -// CHECK:STDOUT: %.d10: type = fn_type_with_self_type %Convert.type.665, %ImplicitAs.facet.a10 [concrete] +// CHECK:STDOUT: %.b06: type = fn_type_with_self_type %Convert.type.665, %ImplicitAs.facet.034 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -258,7 +258,7 @@ fn Test() { // CHECK:STDOUT: %Source.specific_fn.loc30: = specific_function %Source.ref.loc30, @Source(constants.%X) [concrete = constants.%Source.specific_fn.363] // CHECK:STDOUT: %.loc30_20.1: ref %X = temporary_storage // CHECK:STDOUT: %Source.call.loc30: init %X = call %Source.specific_fn.loc30() to %.loc30_20.1 -// CHECK:STDOUT: %impl.elem0.loc30: %.d2d = impl_witness_access constants.%impl_witness.c53, element0 [concrete = constants.%Convert.c7a] +// CHECK:STDOUT: %impl.elem0.loc30: %.28a = impl_witness_access constants.%impl_witness.c53, element0 [concrete = constants.%Convert.c7a] // CHECK:STDOUT: %bound_method.loc30: = bound_method %Source.call.loc30, %impl.elem0.loc30 // CHECK:STDOUT: %.loc30_20.2: ref %X = temporary %.loc30_20.1, %Source.call.loc30 // CHECK:STDOUT: %.loc30_20.3: %X = bind_value %.loc30_20.2 @@ -272,7 +272,7 @@ fn Test() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %Source.specific_fn.loc31: = specific_function %Source.ref.loc31, @Source(constants.%i32) [concrete = constants.%Source.specific_fn.cc7] // CHECK:STDOUT: %Source.call.loc31: init %i32 = call %Source.specific_fn.loc31() -// CHECK:STDOUT: %impl.elem0.loc31: %.d10 = impl_witness_access constants.%impl_witness.226, element0 [concrete = constants.%Convert.08a] +// CHECK:STDOUT: %impl.elem0.loc31: %.b06 = impl_witness_access constants.%impl_witness.226, element0 [concrete = constants.%Convert.08a] // CHECK:STDOUT: %bound_method.loc31: = bound_method %Source.call.loc31, %impl.elem0.loc31 // CHECK:STDOUT: %.loc31_20.1: ref %X = temporary_storage // CHECK:STDOUT: %.loc31_20.2: %i32 = value_of_initializer %Source.call.loc31 diff --git a/toolchain/check/testdata/operators/overloaded/inc.carbon b/toolchain/check/testdata/operators/overloaded/inc.carbon index 39c569498780..95243881f1e7 100644 --- a/toolchain/check/testdata/operators/overloaded/inc.carbon +++ b/toolchain/check/testdata/operators/overloaded/inc.carbon @@ -36,11 +36,11 @@ fn TestOp() { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.0c9: %Op.type.73a = struct_value () [concrete] -// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.e6d: type = fn_type_with_self_type %Op.type.e3a, %Inc.facet [concrete] +// CHECK:STDOUT: %.295: type = fn_type_with_self_type %Op.type.e3a, %Inc.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -113,7 +113,7 @@ fn TestOp() { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %c: ref %C = bind_name c, %c.var // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c -// CHECK:STDOUT: %impl.elem0: %.e6d = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.0c9] +// CHECK:STDOUT: %impl.elem0: %.295 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.0c9] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %c.ref // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr) diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index b583384970bc..5fcb6bea55d9 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -92,11 +92,11 @@ let x: i32 = c[0]; // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [concrete] // CHECK:STDOUT: %At.type.178: type = fn_type @At.2 [concrete] // CHECK:STDOUT: %At.d43: %At.type.178 = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.e80 = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.e80 = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %ElementType.val: %ElementType.e6b = struct_value () [concrete] // CHECK:STDOUT: %SubscriptType.val: %SubscriptType.8ee = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] -// CHECK:STDOUT: %.1a3: type = fn_type_with_self_type %At.type.b3f, %IndexWith.facet [concrete] +// CHECK:STDOUT: %.9e4: type = fn_type_with_self_type %At.type.b3f, %IndexWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -223,7 +223,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %c.ref: ref %C = name_ref c, file.%c // CHECK:STDOUT: %s.ref: ref %SubscriptType.8ee = name_ref s, file.%s // CHECK:STDOUT: %.loc16_24: %SubscriptType.8ee = bind_value %s.ref -// CHECK:STDOUT: %impl.elem0: %.1a3 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%At.d43] +// CHECK:STDOUT: %impl.elem0: %.9e4 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%At.d43] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc16_25: ref %ElementType.e6b = temporary_storage // CHECK:STDOUT: %.loc16_22: %C = bind_value %c.ref @@ -245,7 +245,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %impl_witness.123: = impl_witness (@impl.18b.%At.decl) [concrete] // CHECK:STDOUT: %At.type.9ac: type = fn_type @At.2 [concrete] // CHECK:STDOUT: %At.642: %At.type.9ac = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.917 = facet_value %tuple.type.d07, %impl_witness.123 [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.917 = facet_value %tuple.type.d07, (%impl_witness.123) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] @@ -255,8 +255,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -268,7 +268,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %.252: type = fn_type_with_self_type %At.type.d77, %IndexWith.facet [concrete] +// CHECK:STDOUT: %.1a5: type = fn_type_with_self_type %At.type.d77, %IndexWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -316,14 +316,14 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.loc10_17.2: %tuple.type.24b = tuple_literal (%i32.loc10_9, %i32.loc10_14) // CHECK:STDOUT: %.loc10_17.3: type = converted %.loc10_17.2, constants.%tuple.type.d07 [concrete = constants.%tuple.type.d07] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc10_26.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc10_26.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_26.1: = bound_method @__global_init.%int_1, %impl.elem0.loc10_26.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc10_26.1: = specific_function %impl.elem0.loc10_26.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_26.2: = bound_method @__global_init.%int_1, %specific_fn.loc10_26.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc10_26.1: init %i32 = call %bound_method.loc10_26.2(@__global_init.%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc10_26.1: %i32 = value_of_initializer %int.convert_checked.loc10_26.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc10_26.2: %i32 = converted @__global_init.%int_1, %.loc10_26.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc10_26.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc10_26.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc10_26.3: = bound_method @__global_init.%int_5, %impl.elem0.loc10_26.2 [concrete = constants.%Convert.bound.4e6] // CHECK:STDOUT: %specific_fn.loc10_26.2: = specific_function %impl.elem0.loc10_26.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_26.4: = bound_method @__global_init.%int_5, %specific_fn.loc10_26.2 [concrete = constants.%bound_method.a25] @@ -389,14 +389,14 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.loc10: %tuple.type.f94 = tuple_literal (%int_1, %int_5) // CHECK:STDOUT: %s.ref: %tuple.type.d07 = name_ref s, file.%s // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc11_17.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_17.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_17.1: = bound_method %int_0, %impl.elem0.loc11_17.1 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc11_17.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_17.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc11_17.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc11_17.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc11_17.2: %i32 = converted %int_0, %.loc11_17.1 [concrete = constants.%int_0.6a9] -// CHECK:STDOUT: %impl.elem0.loc11_17.2: %.252 = impl_witness_access constants.%impl_witness.123, element0 [concrete = constants.%At.642] +// CHECK:STDOUT: %impl.elem0.loc11_17.2: %.1a5 = impl_witness_access constants.%impl_witness.123, element0 [concrete = constants.%At.642] // CHECK:STDOUT: %bound_method.loc11_17.3: = bound_method %s.ref, %impl.elem0.loc11_17.2 // CHECK:STDOUT: %At.call: init %i32 = call %bound_method.loc11_17.3(%s.ref, %.loc11_17.2) // CHECK:STDOUT: return @@ -417,11 +417,11 @@ let x: i32 = c[0]; // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [concrete] // CHECK:STDOUT: %At.type.178: type = fn_type @At.2 [concrete] // CHECK:STDOUT: %At.d43: %At.type.178 = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.e80 = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.e80 = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %ElementType.val: %ElementType.e6b = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %.1a3: type = fn_type_with_self_type %At.type.b3f, %IndexWith.facet [concrete] +// CHECK:STDOUT: %.9e4: type = fn_type_with_self_type %At.type.b3f, %IndexWith.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -538,7 +538,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %c.ref: ref %C = name_ref c, file.%c // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc22_25.1: %SubscriptType.8ee = converted %int_0, [concrete = ] -// CHECK:STDOUT: %impl.elem0: %.1a3 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%At.d43] +// CHECK:STDOUT: %impl.elem0: %.9e4 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%At.d43] // CHECK:STDOUT: %bound_method: = bound_method %c.ref, %impl.elem0 // CHECK:STDOUT: %.loc22_25.2: ref %ElementType.e6b = temporary_storage // CHECK:STDOUT: %.loc22_22: %C = bind_value %c.ref diff --git a/toolchain/check/testdata/operators/overloaded/left_shift.carbon b/toolchain/check/testdata/operators/overloaded/left_shift.carbon index 35c817ce6e44..0b57c475c04b 100644 --- a/toolchain/check/testdata/operators/overloaded/left_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/left_shift.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.df4: = impl_witness (@impl.c6e.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.de2: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.df9: %Op.type.de2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShift.facet: %LeftShift.type = facet_value %C, %impl_witness.df4 [concrete] +// CHECK:STDOUT: %LeftShift.facet: %LeftShift.type = facet_value %C, (%impl_witness.df4) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %LeftShiftAssign.type: type = facet_type <@LeftShiftAssign> [concrete] // CHECK:STDOUT: %Op.type.1de: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.386: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.8fc: %Op.type.386 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssign.facet: %LeftShiftAssign.type = facet_value %C, %impl_witness.842 [concrete] +// CHECK:STDOUT: %LeftShiftAssign.facet: %LeftShiftAssign.type = facet_value %C, (%impl_witness.842) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.ad2: type = fn_type_with_self_type %Op.type.789, %LeftShift.facet [concrete] +// CHECK:STDOUT: %.949: type = fn_type_with_self_type %Op.type.789, %LeftShift.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.b73: type = fn_type_with_self_type %Op.type.1de, %LeftShiftAssign.facet [concrete] +// CHECK:STDOUT: %.243: type = fn_type_with_self_type %Op.type.1de, %LeftShiftAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.ad2 = impl_witness_access constants.%impl_witness.df4, element0 [concrete = constants.%Op.df9] +// CHECK:STDOUT: %impl.elem0: %.949 = impl_witness_access constants.%impl_witness.df4, element0 [concrete = constants.%Op.df9] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.b73 = impl_witness_access constants.%impl_witness.842, element0 [concrete = constants.%Op.8fc] +// CHECK:STDOUT: %impl.elem0: %.243 = impl_witness_access constants.%impl_witness.842, element0 [concrete = constants.%Op.8fc] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/mod.carbon b/toolchain/check/testdata/operators/overloaded/mod.carbon index 240b1d3af5c7..00ce36322c90 100644 --- a/toolchain/check/testdata/operators/overloaded/mod.carbon +++ b/toolchain/check/testdata/operators/overloaded/mod.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.5d5: = impl_witness (@impl.f96.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.fd2: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.777: %Op.type.fd2 = struct_value () [concrete] -// CHECK:STDOUT: %Mod.facet: %Mod.type = facet_value %C, %impl_witness.5d5 [concrete] +// CHECK:STDOUT: %Mod.facet: %Mod.type = facet_value %C, (%impl_witness.5d5) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %ModAssign.type: type = facet_type <@ModAssign> [concrete] // CHECK:STDOUT: %Op.type.fae: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.fa2: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.d6c: %Op.type.fa2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssign.facet: %ModAssign.type = facet_value %C, %impl_witness.5ee [concrete] +// CHECK:STDOUT: %ModAssign.facet: %ModAssign.type = facet_value %C, (%impl_witness.5ee) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.86c: type = fn_type_with_self_type %Op.type.860, %Mod.facet [concrete] +// CHECK:STDOUT: %.b64: type = fn_type_with_self_type %Op.type.860, %Mod.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.e7d: type = fn_type_with_self_type %Op.type.fae, %ModAssign.facet [concrete] +// CHECK:STDOUT: %.018: type = fn_type_with_self_type %Op.type.fae, %ModAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.86c = impl_witness_access constants.%impl_witness.5d5, element0 [concrete = constants.%Op.777] +// CHECK:STDOUT: %impl.elem0: %.b64 = impl_witness_access constants.%impl_witness.5d5, element0 [concrete = constants.%Op.777] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.e7d = impl_witness_access constants.%impl_witness.5ee, element0 [concrete = constants.%Op.d6c] +// CHECK:STDOUT: %impl.elem0: %.018 = impl_witness_access constants.%impl_witness.5ee, element0 [concrete = constants.%Op.d6c] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/mul.carbon b/toolchain/check/testdata/operators/overloaded/mul.carbon index 8ec9a2408865..d4ec9864f3ea 100644 --- a/toolchain/check/testdata/operators/overloaded/mul.carbon +++ b/toolchain/check/testdata/operators/overloaded/mul.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.289: = impl_witness (@impl.4f2.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.fa5: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.550: %Op.type.fa5 = struct_value () [concrete] -// CHECK:STDOUT: %Mul.facet: %Mul.type = facet_value %C, %impl_witness.289 [concrete] +// CHECK:STDOUT: %Mul.facet: %Mul.type = facet_value %C, (%impl_witness.289) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %MulAssign.type: type = facet_type <@MulAssign> [concrete] // CHECK:STDOUT: %Op.type.340: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.c02: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.a8c: %Op.type.c02 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssign.facet: %MulAssign.type = facet_value %C, %impl_witness.de9 [concrete] +// CHECK:STDOUT: %MulAssign.facet: %MulAssign.type = facet_value %C, (%impl_witness.de9) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.221: type = fn_type_with_self_type %Op.type.3ae, %Mul.facet [concrete] +// CHECK:STDOUT: %.c1a: type = fn_type_with_self_type %Op.type.3ae, %Mul.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.037: type = fn_type_with_self_type %Op.type.340, %MulAssign.facet [concrete] +// CHECK:STDOUT: %.5e2: type = fn_type_with_self_type %Op.type.340, %MulAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.221 = impl_witness_access constants.%impl_witness.289, element0 [concrete = constants.%Op.550] +// CHECK:STDOUT: %impl.elem0: %.c1a = impl_witness_access constants.%impl_witness.289, element0 [concrete = constants.%Op.550] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.037 = impl_witness_access constants.%impl_witness.de9, element0 [concrete = constants.%Op.a8c] +// CHECK:STDOUT: %impl.elem0: %.5e2 = impl_witness_access constants.%impl_witness.de9, element0 [concrete = constants.%Op.a8c] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/negate.carbon b/toolchain/check/testdata/operators/overloaded/negate.carbon index 11dc8af89eec..eea2068aee4f 100644 --- a/toolchain/check/testdata/operators/overloaded/negate.carbon +++ b/toolchain/check/testdata/operators/overloaded/negate.carbon @@ -35,11 +35,11 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.c34.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.67d: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.64c: %Op.type.67d = struct_value () [concrete] -// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.362: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] +// CHECK:STDOUT: %.f7e: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -120,7 +120,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return.param_patt: %C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a -// CHECK:STDOUT: %impl.elem0: %.362 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.64c] +// CHECK:STDOUT: %impl.elem0: %.f7e = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Op.64c] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc23: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref) to %.loc23 diff --git a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon index 915d9b663ef5..a648be0fa95b 100644 --- a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon @@ -275,12 +275,12 @@ fn F() { ()[()]; } // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%At.decl) [concrete] // CHECK:STDOUT: %At.type.486: type = fn_type @At.2 [concrete] // CHECK:STDOUT: %At.7c4: %At.type.486 = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.a51 = facet_value %empty_tuple.type, %impl_witness [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.a51 = facet_value %empty_tuple.type, (%impl_witness) [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %assoc0.9bc: %IndexWith.assoc_type.349 = assoc_entity element0, imports.%Core.import_ref.981 [symbolic] -// CHECK:STDOUT: %.740: type = fn_type_with_self_type %At.type.969, %IndexWith.facet [concrete] +// CHECK:STDOUT: %.851: type = fn_type_with_self_type %At.type.969, %IndexWith.facet [concrete] // CHECK:STDOUT: %At.bound: = bound_method %empty_tuple, %At.7c4 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -392,7 +392,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: %.loc12_11.2: %empty_tuple.type = converted %.loc12_11.1, %empty_tuple.loc12_11 [concrete = constants.%empty_tuple] // CHECK:STDOUT: %empty_tuple.loc12_14: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc12_15: %empty_tuple.type = converted %.loc12_14, %empty_tuple.loc12_14 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %impl.elem0: %.740 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%At.7c4] +// CHECK:STDOUT: %impl.elem0: %.851 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%At.7c4] // CHECK:STDOUT: %bound_method: = bound_method %.loc12_11.2, %impl.elem0 [concrete = constants.%At.bound] // CHECK:STDOUT: %At.call: init %empty_tuple.type = call %bound_method(%.loc12_11.2, %.loc12_15) // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/operators/overloaded/ordered.carbon b/toolchain/check/testdata/operators/overloaded/ordered.carbon index 744b62b56c76..dc3d62ba26f2 100644 --- a/toolchain/check/testdata/operators/overloaded/ordered.carbon +++ b/toolchain/check/testdata/operators/overloaded/ordered.carbon @@ -97,19 +97,19 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %Greater.afe: %Greater.type.0a1 = struct_value () [concrete] // CHECK:STDOUT: %GreaterOrEquivalent.type.caf: type = fn_type @GreaterOrEquivalent.2 [concrete] // CHECK:STDOUT: %GreaterOrEquivalent.03b: %GreaterOrEquivalent.type.caf = struct_value () [concrete] -// CHECK:STDOUT: %Ordered.facet: %Ordered.type = facet_value %C, %impl_witness [concrete] +// CHECK:STDOUT: %Ordered.facet: %Ordered.type = facet_value %C, (%impl_witness) [concrete] // CHECK:STDOUT: %TestLess.type: type = fn_type @TestLess [concrete] // CHECK:STDOUT: %TestLess: %TestLess.type = struct_value () [concrete] -// CHECK:STDOUT: %.7d6: type = fn_type_with_self_type %Less.type.341, %Ordered.facet [concrete] +// CHECK:STDOUT: %.a6a: type = fn_type_with_self_type %Less.type.341, %Ordered.facet [concrete] // CHECK:STDOUT: %TestLessEqual.type: type = fn_type @TestLessEqual [concrete] // CHECK:STDOUT: %TestLessEqual: %TestLessEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.635: type = fn_type_with_self_type %LessOrEquivalent.type.859, %Ordered.facet [concrete] +// CHECK:STDOUT: %.e16: type = fn_type_with_self_type %LessOrEquivalent.type.859, %Ordered.facet [concrete] // CHECK:STDOUT: %TestGreater.type: type = fn_type @TestGreater [concrete] // CHECK:STDOUT: %TestGreater: %TestGreater.type = struct_value () [concrete] -// CHECK:STDOUT: %.104: type = fn_type_with_self_type %Greater.type.270, %Ordered.facet [concrete] +// CHECK:STDOUT: %.0c7: type = fn_type_with_self_type %Greater.type.270, %Ordered.facet [concrete] // CHECK:STDOUT: %TestGreaterEqual.type: type = fn_type @TestGreaterEqual [concrete] // CHECK:STDOUT: %TestGreaterEqual: %TestGreaterEqual.type = struct_value () [concrete] -// CHECK:STDOUT: %.086: type = fn_type_with_self_type %GreaterOrEquivalent.type.8af, %Ordered.facet [concrete] +// CHECK:STDOUT: %.a45: type = fn_type_with_self_type %GreaterOrEquivalent.type.8af, %Ordered.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -332,7 +332,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.7d6 = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Less.738] +// CHECK:STDOUT: %impl.elem0: %.a6a = impl_witness_access constants.%impl_witness, element0 [concrete = constants.%Less.738] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %Less.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: %.loc14_15.1: bool = value_of_initializer %Less.call @@ -344,7 +344,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem1: %.635 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%LessOrEquivalent.010] +// CHECK:STDOUT: %impl.elem1: %.e16 = impl_witness_access constants.%impl_witness, element1 [concrete = constants.%LessOrEquivalent.010] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: %LessOrEquivalent.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: %.loc18_16.1: bool = value_of_initializer %LessOrEquivalent.call @@ -356,7 +356,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem2: %.104 = impl_witness_access constants.%impl_witness, element2 [concrete = constants.%Greater.afe] +// CHECK:STDOUT: %impl.elem2: %.0c7 = impl_witness_access constants.%impl_witness, element2 [concrete = constants.%Greater.afe] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem2 // CHECK:STDOUT: %Greater.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: %.loc22_15.1: bool = value_of_initializer %Greater.call @@ -368,7 +368,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem3: %.086 = impl_witness_access constants.%impl_witness, element3 [concrete = constants.%GreaterOrEquivalent.03b] +// CHECK:STDOUT: %impl.elem3: %.a45 = impl_witness_access constants.%impl_witness, element3 [concrete = constants.%GreaterOrEquivalent.03b] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem3 // CHECK:STDOUT: %GreaterOrEquivalent.call: init bool = call %bound_method(%a.ref, %b.ref) // CHECK:STDOUT: %.loc26_16.1: bool = value_of_initializer %GreaterOrEquivalent.call diff --git a/toolchain/check/testdata/operators/overloaded/right_shift.carbon b/toolchain/check/testdata/operators/overloaded/right_shift.carbon index 530ecf04198d..c93f1a38b0c4 100644 --- a/toolchain/check/testdata/operators/overloaded/right_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/right_shift.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.404: = impl_witness (@impl.3c1.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.092: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.79a: %Op.type.092 = struct_value () [concrete] -// CHECK:STDOUT: %RightShift.facet: %RightShift.type = facet_value %C, %impl_witness.404 [concrete] +// CHECK:STDOUT: %RightShift.facet: %RightShift.type = facet_value %C, (%impl_witness.404) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %RightShiftAssign.type: type = facet_type <@RightShiftAssign> [concrete] // CHECK:STDOUT: %Op.type.6f6: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.aab: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.7b2: %Op.type.aab = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssign.facet: %RightShiftAssign.type = facet_value %C, %impl_witness.686 [concrete] +// CHECK:STDOUT: %RightShiftAssign.facet: %RightShiftAssign.type = facet_value %C, (%impl_witness.686) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.882: type = fn_type_with_self_type %Op.type.4f4, %RightShift.facet [concrete] +// CHECK:STDOUT: %.a28: type = fn_type_with_self_type %Op.type.4f4, %RightShift.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.f3e: type = fn_type_with_self_type %Op.type.6f6, %RightShiftAssign.facet [concrete] +// CHECK:STDOUT: %.0b2: type = fn_type_with_self_type %Op.type.6f6, %RightShiftAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.882 = impl_witness_access constants.%impl_witness.404, element0 [concrete = constants.%Op.79a] +// CHECK:STDOUT: %impl.elem0: %.a28 = impl_witness_access constants.%impl_witness.404, element0 [concrete = constants.%Op.79a] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.f3e = impl_witness_access constants.%impl_witness.686, element0 [concrete = constants.%Op.7b2] +// CHECK:STDOUT: %impl.elem0: %.0b2 = impl_witness_access constants.%impl_witness.686, element0 [concrete = constants.%Op.7b2] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/operators/overloaded/sub.carbon b/toolchain/check/testdata/operators/overloaded/sub.carbon index 3568006b646a..018d10c26c22 100644 --- a/toolchain/check/testdata/operators/overloaded/sub.carbon +++ b/toolchain/check/testdata/operators/overloaded/sub.carbon @@ -43,7 +43,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %impl_witness.3b8: = impl_witness (@impl.3f9.%Op.decl) [concrete] // CHECK:STDOUT: %Op.type.c74: type = fn_type @Op.2 [concrete] // CHECK:STDOUT: %Op.151: %Op.type.c74 = struct_value () [concrete] -// CHECK:STDOUT: %Sub.facet: %Sub.type = facet_value %C, %impl_witness.3b8 [concrete] +// CHECK:STDOUT: %Sub.facet: %Sub.type = facet_value %C, (%impl_witness.3b8) [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %SubAssign.type: type = facet_type <@SubAssign> [concrete] // CHECK:STDOUT: %Op.type.f0d: type = fn_type @Op.3 [concrete] @@ -51,13 +51,13 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %Op.type.966: type = fn_type @Op.4 [concrete] // CHECK:STDOUT: %Op.a55: %Op.type.966 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssign.facet: %SubAssign.type = facet_value %C, %impl_witness.91c [concrete] +// CHECK:STDOUT: %SubAssign.facet: %SubAssign.type = facet_value %C, (%impl_witness.91c) [concrete] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %.f35: type = fn_type_with_self_type %Op.type.111, %Sub.facet [concrete] +// CHECK:STDOUT: %.bcf: type = fn_type_with_self_type %Op.type.111, %Sub.facet [concrete] // CHECK:STDOUT: %TestAssign.type: type = fn_type @TestAssign [concrete] // CHECK:STDOUT: %TestAssign: %TestAssign.type = struct_value () [concrete] -// CHECK:STDOUT: %.3d8: type = fn_type_with_self_type %Op.type.f0d, %SubAssign.facet [concrete] +// CHECK:STDOUT: %.dcb: type = fn_type_with_self_type %Op.type.f0d, %SubAssign.facet [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -204,7 +204,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.f35 = impl_witness_access constants.%impl_witness.3b8, element0 [concrete = constants.%Op.151] +// CHECK:STDOUT: %impl.elem0: %.bcf = impl_witness_access constants.%impl_witness.3b8, element0 [concrete = constants.%Op.151] // CHECK:STDOUT: %bound_method: = bound_method %a.ref, %impl.elem0 // CHECK:STDOUT: %.loc26: ref %C = splice_block %return {} // CHECK:STDOUT: %Op.call: init %C = call %bound_method(%a.ref, %b.ref) to %.loc26 @@ -216,7 +216,7 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a // CHECK:STDOUT: %.loc31: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %impl.elem0: %.3d8 = impl_witness_access constants.%impl_witness.91c, element0 [concrete = constants.%Op.a55] +// CHECK:STDOUT: %impl.elem0: %.dcb = impl_witness_access constants.%impl_witness.91c, element0 [concrete = constants.%Op.a55] // CHECK:STDOUT: %bound_method: = bound_method %.loc31, %impl.elem0 // CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc31 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) diff --git a/toolchain/check/testdata/package_expr/syntax.carbon b/toolchain/check/testdata/package_expr/syntax.carbon index 70663c9d6a64..cfa1df49f192 100644 --- a/toolchain/check/testdata/package_expr/syntax.carbon +++ b/toolchain/check/testdata/package_expr/syntax.carbon @@ -52,8 +52,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -101,7 +101,7 @@ fn Main() { // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] @@ -126,8 +126,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -177,7 +177,7 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %i32 = var x // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method.9a1] @@ -209,7 +209,7 @@ fn Main() { // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon index 8c1ae734fc7b..a58cbadc600e 100644 --- a/toolchain/check/testdata/packages/implicit_imports_prelude.carbon +++ b/toolchain/check/testdata/packages/implicit_imports_prelude.carbon @@ -33,8 +33,8 @@ var b: i32 = a; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -71,7 +71,7 @@ var b: i32 = a; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/packages/raw_core.carbon b/toolchain/check/testdata/packages/raw_core.carbon index 7bf2acfa5c5e..cb27534e2c09 100644 --- a/toolchain/check/testdata/packages/raw_core.carbon +++ b/toolchain/check/testdata/packages/raw_core.carbon @@ -204,8 +204,8 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -261,7 +261,7 @@ var c: r#Core = {.n = 0 as Core.Int(32)}; // CHECK:STDOUT: %Int.ref: %Int.type = name_ref Int, imports.%Core.Int [concrete = constants.%Int.generic] // 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: %impl.elem0: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc6_25.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_25.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index 7c1b8118f042..514a434c0a9e 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -26,8 +26,8 @@ fn F() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -69,7 +69,7 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_3.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_3.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index 1bf597221465..bafc97e2b122 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -37,8 +37,8 @@ fn F() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -83,7 +83,7 @@ fn F() { // CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc12_46.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc12, %int_2.loc12) -// CHECK:STDOUT: %impl.elem0.loc12_46.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_46.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_46.1: = bound_method %int_1.loc12, %impl.elem0.loc12_46.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc12_46.1: = specific_function %impl.elem0.loc12_46.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_46.2: = bound_method %int_1.loc12, %specific_fn.loc12_46.1 [concrete = constants.%bound_method.9a1] @@ -91,7 +91,7 @@ fn F() { // CHECK:STDOUT: %.loc12_46.2: init %i32 = converted %int_1.loc12, %int.convert_checked.loc12_46.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc12_46.3: ref %i32 = struct_access %s.var, element0 // CHECK:STDOUT: %.loc12_46.4: init %i32 = initialize_from %.loc12_46.2 to %.loc12_46.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc12_46.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_46.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_46.3: = bound_method %int_2.loc12, %impl.elem0.loc12_46.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc12_46.2: = specific_function %impl.elem0.loc12_46.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_46.4: = bound_method %int_2.loc12, %specific_fn.loc12_46.2 [concrete = constants.%bound_method.b92] @@ -165,7 +165,7 @@ fn F() { // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc18: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc18_28.1: %tuple.type.f94 = tuple_literal (%int_1.loc18, %int_2.loc18) -// CHECK:STDOUT: %impl.elem0.loc18_28.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_28.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_28.1: = bound_method %int_1.loc18, %impl.elem0.loc18_28.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc18_28.1: = specific_function %impl.elem0.loc18_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_28.2: = bound_method %int_1.loc18, %specific_fn.loc18_28.1 [concrete = constants.%bound_method.9a1] @@ -173,7 +173,7 @@ fn F() { // CHECK:STDOUT: %.loc18_28.2: init %i32 = converted %int_1.loc18, %int.convert_checked.loc18_28.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0.loc18: ref %i32 = tuple_access %t.var, element0 // CHECK:STDOUT: %.loc18_28.3: init %i32 = initialize_from %.loc18_28.2 to %tuple.elem0.loc18 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc18_28.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_28.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_28.3: = bound_method %int_2.loc18, %impl.elem0.loc18_28.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc18_28.2: = specific_function %impl.elem0.loc18_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_28.4: = bound_method %int_2.loc18, %specific_fn.loc18_28.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index 1e55a0881e66..16be3c8ee897 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -28,8 +28,8 @@ fn F() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -71,7 +71,7 @@ fn F() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %i32 = var n // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_3.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_3.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/pointer/import.carbon b/toolchain/check/testdata/pointer/import.carbon index 8d776b5ec9bb..b122387f780e 100644 --- a/toolchain/check/testdata/pointer/import.carbon +++ b/toolchain/check/testdata/pointer/import.carbon @@ -32,8 +32,8 @@ var a: i32* = a_ref; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -83,7 +83,7 @@ var a: i32* = a_ref; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_1.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_1.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/return/code_after_return_value.carbon b/toolchain/check/testdata/return/code_after_return_value.carbon index 4c4b3f7302aa..940aa2bd786c 100644 --- a/toolchain/check/testdata/return/code_after_return_value.carbon +++ b/toolchain/check/testdata/return/code_after_return_value.carbon @@ -35,8 +35,8 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -82,7 +82,7 @@ fn F(b: bool) -> i32 { // CHECK:STDOUT: fn @F(%b.param_patt: bool) -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] 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 2c8f11416726..10a7aa4f33f7 100644 --- a/toolchain/check/testdata/return/fail_return_with_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_with_returned_var.carbon @@ -46,8 +46,8 @@ fn G() -> C { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -135,7 +135,7 @@ fn G() -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] @@ -160,7 +160,7 @@ fn G() -> C { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc25_38.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc25_38.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc25_38.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_38.1: = bound_method %int_1, %impl.elem0.loc25_38.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc25_38.1: = specific_function %impl.elem0.loc25_38.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_38.2: = bound_method %int_1, %specific_fn.loc25_38.1 [concrete = constants.%bound_method.9a1] @@ -168,7 +168,7 @@ fn G() -> C { // CHECK:STDOUT: %.loc25_38.2: init %i32 = converted %int_1, %int.convert_checked.loc25_38.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc25_38.3: ref %i32 = class_element_access %return, element0 // CHECK:STDOUT: %.loc25_38.4: init %i32 = initialize_from %.loc25_38.2 to %.loc25_38.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc25_38.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc25_38.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc25_38.3: = bound_method %int_2, %impl.elem0.loc25_38.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc25_38.2: = specific_function %impl.elem0.loc25_38.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc25_38.4: = bound_method %int_2, %specific_fn.loc25_38.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon index ca4b214a640f..19e8291b36d1 100644 --- a/toolchain/check/testdata/return/fail_returned_var_shadow.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_shadow.carbon @@ -54,8 +54,8 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -116,7 +116,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %int_0.loc13: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc13: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_14.1: = bound_method %int_0.loc13, %impl.elem0.loc13 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_14.2: = bound_method %int_0.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.b6e] @@ -134,7 +134,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc21: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc21: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc21_14.1: = bound_method %int_1, %impl.elem0.loc21 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc21_14.2: = bound_method %int_1, %specific_fn.loc21 [concrete = constants.%bound_method.9a1] @@ -150,7 +150,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else: // CHECK:STDOUT: %int_0.loc23: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc23: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc23: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_11.1: = bound_method %int_0.loc23, %impl.elem0.loc23 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_11.2: = bound_method %int_0.loc23, %specific_fn.loc23 [concrete = constants.%bound_method.b6e] @@ -172,7 +172,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %int_0.loc28: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc28: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc28: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc28_14.1: = bound_method %int_0.loc28, %impl.elem0.loc28 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc28: = specific_function %impl.elem0.loc28, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc28_14.2: = bound_method %int_0.loc28, %specific_fn.loc28 [concrete = constants.%bound_method.b6e] @@ -194,7 +194,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc37: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc37: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc37_16.1: = bound_method %int_1, %impl.elem0.loc37 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc37: = specific_function %impl.elem0.loc37, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc37_16.2: = bound_method %int_1, %specific_fn.loc37 [concrete = constants.%bound_method.9a1] @@ -213,7 +213,7 @@ fn DifferentScopes() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc27: // CHECK:STDOUT: %int_0.loc40: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc40: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc40: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc40_11.1: = bound_method %int_0.loc40, %impl.elem0.loc40 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc40: = specific_function %impl.elem0.loc40, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc40_11.2: = bound_method %int_0.loc40, %specific_fn.loc40 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon index 5a3612123a0f..c3da276302af 100644 --- a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon +++ b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon @@ -90,7 +90,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness: = impl_witness (@impl.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.c2a: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.40d: %Convert.type.c2a = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.11a = facet_value Core.IntLiteral, %impl_witness [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.11a = facet_value Core.IntLiteral, (%impl_witness) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -299,8 +299,8 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %assoc0.a81: %ImplicitAs.assoc_type.740 = assoc_entity element0, imports.%Core.import_ref.1c7 [concrete] // CHECK:STDOUT: %assoc0.43d: %ImplicitAs.assoc_type.837 = assoc_entity element0, imports.%Core.import_ref.207 [symbolic] // CHECK:STDOUT: %impl_witness.39c7: = impl_witness (imports.%Core.import_ref.f35) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.085: %ImplicitAs.type.61e = facet_value Core.IntLiteral, %impl_witness.39c7 [concrete] -// CHECK:STDOUT: %.624: type = fn_type_with_self_type %Convert.type.059, %ImplicitAs.facet.085 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.673: %ImplicitAs.type.61e = facet_value Core.IntLiteral, (%impl_witness.39c7) [concrete] +// CHECK:STDOUT: %.5e0: type = fn_type_with_self_type %Convert.type.059, %ImplicitAs.facet.673 [concrete] // CHECK:STDOUT: %Convert.type.49f: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.cb5: %Convert.type.49f = struct_value () [concrete] // CHECK:STDOUT: %Convert.bound.04a: = bound_method %int_0.5c6, %Convert.cb5 [concrete] @@ -315,7 +315,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.39cb: = impl_witness (@impl.837.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.fff: type = fn_type @Convert.3 [concrete] // CHECK:STDOUT: %Convert.606: %Convert.type.fff = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.a04: %ImplicitAs.type.94e = facet_value %C.808, %impl_witness.39cb [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.44d: %ImplicitAs.type.94e = facet_value %C.808, (%impl_witness.39cb) [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.92d: = bound_method %int_1.5b8, %Convert.cb5 [concrete] // CHECK:STDOUT: %int_1.f38: %i32.builtin = int_value 1 [concrete] @@ -323,7 +323,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.ecb: = impl_witness (@impl.511.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.89f: type = fn_type @Convert.4 [concrete] // CHECK:STDOUT: %Convert.689: %Convert.type.89f = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.827: %ImplicitAs.type.94e = facet_value %C.8be, %impl_witness.ecb [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.018: %ImplicitAs.type.94e = facet_value %C.8be, (%impl_witness.ecb) [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Convert.bound.1b9: = bound_method %int_2.ecc, %Convert.cb5 [concrete] // CHECK:STDOUT: %int_2.5a1: %i32.builtin = int_value 2 [concrete] @@ -331,7 +331,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.8b8: = impl_witness (@impl.141.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.e90: type = fn_type @Convert.5 [concrete] // CHECK:STDOUT: %Convert.ec9: %Convert.type.e90 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f40: %ImplicitAs.type.94e = facet_value %C.c17, %impl_witness.8b8 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.e66: %ImplicitAs.type.94e = facet_value %C.c17, (%impl_witness.8b8) [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %Convert.bound.b6b: = bound_method %int_3.1ba, %Convert.cb5 [concrete] // CHECK:STDOUT: %int_3.a0f: %i32.builtin = int_value 3 [concrete] @@ -339,7 +339,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.1c0: = impl_witness (@impl.e6b.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.5db: type = fn_type @Convert.6 [concrete] // CHECK:STDOUT: %Convert.193: %Convert.type.5db = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.4b0: %ImplicitAs.type.94e = facet_value %C.414, %impl_witness.1c0 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.480: %ImplicitAs.type.94e = facet_value %C.414, (%impl_witness.1c0) [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Convert.bound.626: = bound_method %int_4.0c1, %Convert.cb5 [concrete] // CHECK:STDOUT: %int_4.4f1: %i32.builtin = int_value 4 [concrete] @@ -347,7 +347,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.7c9: = impl_witness (@impl.056.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.4e7: type = fn_type @Convert.7 [concrete] // CHECK:STDOUT: %Convert.52a: %Convert.type.4e7 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e09: %ImplicitAs.type.94e = facet_value %C.488, %impl_witness.7c9 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.28d: %ImplicitAs.type.94e = facet_value %C.488, (%impl_witness.7c9) [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %Convert.bound.910: = bound_method %int_5.64b, %Convert.cb5 [concrete] // CHECK:STDOUT: %int_5.967: %i32.builtin = int_value 5 [concrete] @@ -355,7 +355,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.4b9: = impl_witness (@impl.154.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.658: type = fn_type @Convert.8 [concrete] // CHECK:STDOUT: %Convert.9b6: %Convert.type.658 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.210: %ImplicitAs.type.94e = facet_value %C.3e2, %impl_witness.4b9 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.d5c: %ImplicitAs.type.94e = facet_value %C.3e2, (%impl_witness.4b9) [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] // CHECK:STDOUT: %Convert.bound.e3a: = bound_method %int_6.462, %Convert.cb5 [concrete] // CHECK:STDOUT: %int_6.ec5: %i32.builtin = int_value 6 [concrete] @@ -363,7 +363,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.4bf: = impl_witness (@impl.a6d.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.623: type = fn_type @Convert.9 [concrete] // CHECK:STDOUT: %Convert.8c9: %Convert.type.623 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e67: %ImplicitAs.type.94e = facet_value %C.78c, %impl_witness.4bf [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.941: %ImplicitAs.type.94e = facet_value %C.78c, (%impl_witness.4bf) [concrete] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] // CHECK:STDOUT: %Convert.bound.06a: = bound_method %int_7.29f, %Convert.cb5 [concrete] // CHECK:STDOUT: %int_7.6ae: %i32.builtin = int_value 7 [concrete] @@ -371,7 +371,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %impl_witness.74c: = impl_witness (@impl.ebc.%Convert.decl) [concrete] // CHECK:STDOUT: %Convert.type.3f8: type = fn_type @Convert.10 [concrete] // CHECK:STDOUT: %Convert.71a: %Convert.type.3f8 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.367: %ImplicitAs.type.94e = facet_value %C.6aa, %impl_witness.74c [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.afc: %ImplicitAs.type.94e = facet_value %C.6aa, (%impl_witness.74c) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -424,7 +424,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.837 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_0) [concrete = constants.%int_0.a54] // CHECK:STDOUT: %.loc10_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_0.a54] @@ -439,7 +439,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.511 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound.92d] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_1) [concrete = constants.%int_1.f38] // CHECK:STDOUT: %.loc11_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_1.f38] @@ -454,7 +454,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.141 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound.1b9] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_2) [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc12_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_2.5a1] @@ -469,7 +469,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.e6b [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound.b6b] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_3) [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc13_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_3.a0f] @@ -484,7 +484,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.056 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_4, %impl.elem0 [concrete = constants.%Convert.bound.626] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_4) [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc14_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_4.4f1] @@ -499,7 +499,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.154 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_5, %impl.elem0 [concrete = constants.%Convert.bound.910] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_5) [concrete = constants.%int_5.967] // CHECK:STDOUT: %.loc15_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_5.967] @@ -514,7 +514,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.a6d [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_6, %impl.elem0 [concrete = constants.%Convert.bound.e3a] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_6) [concrete = constants.%int_6.ec5] // CHECK:STDOUT: %.loc16_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_6.ec5] @@ -529,7 +529,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: impl_decl @impl.ebc [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] -// CHECK:STDOUT: %impl.elem0: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method: = bound_method %int_7, %impl.elem0 [concrete = constants.%Convert.bound.06a] // CHECK:STDOUT: %int.convert_checked: init %i32.builtin = call %bound_method(%int_7) [concrete = constants.%int_7.6ae] // CHECK:STDOUT: %.loc17_9.1: %i32.builtin = value_of_initializer %int.convert_checked [concrete = constants.%int_7.6ae] @@ -786,13 +786,13 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_0.loc8_31: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_0.loc8_39: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc8_40.1: %struct_type.n.m.819 = struct_literal (%int_0.loc8_31, %int_0.loc8_39) -// CHECK:STDOUT: %impl.elem0.loc8_40.1: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc8_40.1: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc8_40.1: = bound_method %int_0.loc8_31, %impl.elem0.loc8_40.1 [concrete = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked.loc8_40.1: init %i32.builtin = call %bound_method.loc8_40.1(%int_0.loc8_31) [concrete = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_40.2: init %i32.builtin = converted %int_0.loc8_31, %int.convert_checked.loc8_40.1 [concrete = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_40.3: ref %i32.builtin = class_element_access %return, element0 // CHECK:STDOUT: %.loc8_40.4: init %i32.builtin = initialize_from %.loc8_40.2 to %.loc8_40.3 [concrete = constants.%int_0.a54] -// CHECK:STDOUT: %impl.elem0.loc8_40.2: %.624 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc8_40.2: %.5e0 = impl_witness_access constants.%impl_witness.39c7, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc8_40.2: = bound_method %int_0.loc8_39, %impl.elem0.loc8_40.2 [concrete = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked.loc8_40.2: init %i32.builtin = call %bound_method.loc8_40.2(%int_0.loc8_39) [concrete = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_40.5: init %i32.builtin = converted %int_0.loc8_39, %int.convert_checked.loc8_40.2 [concrete = constants.%int_0.a54] @@ -932,10 +932,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %assoc0 => constants.%assoc0.69d // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.a04) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.44d) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.a04 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.44d // CHECK:STDOUT: %Self.as_type => constants.%C.808 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -946,10 +946,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.827) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.018) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.827 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.018 // CHECK:STDOUT: %Self.as_type => constants.%C.8be // CHECK:STDOUT: } // CHECK:STDOUT: @@ -960,10 +960,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.f40) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.e66) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.f40 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.e66 // CHECK:STDOUT: %Self.as_type => constants.%C.c17 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -974,10 +974,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.4b0) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.480) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.4b0 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.480 // CHECK:STDOUT: %Self.as_type => constants.%C.414 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -988,10 +988,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.e09) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.28d) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.e09 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.28d // CHECK:STDOUT: %Self.as_type => constants.%C.488 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1002,10 +1002,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.210) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.d5c) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.210 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.d5c // CHECK:STDOUT: %Self.as_type => constants.%C.3e2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1016,10 +1016,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.e67) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.941) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.e67 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.941 // CHECK:STDOUT: %Self.as_type => constants.%C.78c // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1030,10 +1030,10 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.367) { +// CHECK:STDOUT: specific @Convert.1(constants.%D, constants.%ImplicitAs.facet.afc) { // CHECK:STDOUT: %T => constants.%D // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.94e -// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.367 +// CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.afc // CHECK:STDOUT: %Self.as_type => constants.%C.6aa // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1073,8 +1073,8 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %assoc0.a81: %ImplicitAs.assoc_type.740 = assoc_entity element0, imports.%Core.import_ref.1c7 [concrete] // CHECK:STDOUT: %assoc0.43d: %ImplicitAs.assoc_type.837 = assoc_entity element0, imports.%Core.import_ref.207 [symbolic] // CHECK:STDOUT: %impl_witness.39c: = impl_witness (imports.%Core.import_ref.f35) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.085: %ImplicitAs.type.61e = facet_value Core.IntLiteral, %impl_witness.39c [concrete] -// CHECK:STDOUT: %.624: type = fn_type_with_self_type %Convert.type.059, %ImplicitAs.facet.085 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.673: %ImplicitAs.type.61e = facet_value Core.IntLiteral, (%impl_witness.39c) [concrete] +// CHECK:STDOUT: %.5e0: type = fn_type_with_self_type %Convert.type.059, %ImplicitAs.facet.673 [concrete] // CHECK:STDOUT: %Convert.type.49f: type = fn_type @Convert.2 [concrete] // CHECK:STDOUT: %Convert.cb5: %Convert.type.49f = struct_value () [concrete] // CHECK:STDOUT: %Convert.bound.04a: = bound_method %int_0.5c6, %Convert.cb5 [concrete] @@ -1101,64 +1101,64 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %int_7.6ae: %i32.builtin = int_value 7 [concrete] // CHECK:STDOUT: %C.f0a: type = class_type @C, @C(%int_7.6ae) [concrete] // CHECK:STDOUT: %impl_witness.368: = impl_witness (imports.%P.import_ref.5f3) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.fc3: %ImplicitAs.type.5f9 = facet_value %C.76d, %impl_witness.368 [concrete] -// CHECK:STDOUT: %.a6f: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.fc3 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.13a: %ImplicitAs.type.5f9 = facet_value %C.76d, (%impl_witness.368) [concrete] +// CHECK:STDOUT: %.3f5: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.13a [concrete] // CHECK:STDOUT: %Convert.type.c72: type = fn_type @Convert.3 [concrete] // CHECK:STDOUT: %Convert.4f5: %Convert.type.c72 = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %Convert.bound.92d: = bound_method %int_1.5b8, %Convert.cb5 [concrete] // CHECK:STDOUT: %C.val.172: %C.012 = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.29f: = impl_witness (imports.%P.import_ref.4da) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.5d2: %ImplicitAs.type.5f9 = facet_value %C.012, %impl_witness.29f [concrete] -// CHECK:STDOUT: %.a51: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.5d2 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.cf4: %ImplicitAs.type.5f9 = facet_value %C.012, (%impl_witness.29f) [concrete] +// CHECK:STDOUT: %.a31: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.cf4 [concrete] // CHECK:STDOUT: %Convert.type.d88: type = fn_type @Convert.4 [concrete] // CHECK:STDOUT: %Convert.ecc: %Convert.type.d88 = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Convert.bound.1b9: = bound_method %int_2.ecc, %Convert.cb5 [concrete] // CHECK:STDOUT: %C.val.418: %C.3e6 = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.3ac: = impl_witness (imports.%P.import_ref.ebf) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.8f4: %ImplicitAs.type.5f9 = facet_value %C.3e6, %impl_witness.3ac [concrete] -// CHECK:STDOUT: %.d2a: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.8f4 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.0c7: %ImplicitAs.type.5f9 = facet_value %C.3e6, (%impl_witness.3ac) [concrete] +// CHECK:STDOUT: %.fa2: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.0c7 [concrete] // CHECK:STDOUT: %Convert.type.c17: type = fn_type @Convert.5 [concrete] // CHECK:STDOUT: %Convert.c2b: %Convert.type.c17 = struct_value () [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %Convert.bound.b6b: = bound_method %int_3.1ba, %Convert.cb5 [concrete] // CHECK:STDOUT: %C.val.bba: %C.4d9 = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.b40: = impl_witness (imports.%P.import_ref.f13) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1e6: %ImplicitAs.type.5f9 = facet_value %C.4d9, %impl_witness.b40 [concrete] -// CHECK:STDOUT: %.6c2: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.1e6 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.64d: %ImplicitAs.type.5f9 = facet_value %C.4d9, (%impl_witness.b40) [concrete] +// CHECK:STDOUT: %.f5d: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.64d [concrete] // CHECK:STDOUT: %Convert.type.70f: type = fn_type @Convert.6 [concrete] // CHECK:STDOUT: %Convert.2b5: %Convert.type.70f = struct_value () [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Convert.bound.626: = bound_method %int_4.0c1, %Convert.cb5 [concrete] // CHECK:STDOUT: %C.val.4b6: %C.a67 = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.20f: = impl_witness (imports.%P.import_ref.97a) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.686: %ImplicitAs.type.5f9 = facet_value %C.a67, %impl_witness.20f [concrete] -// CHECK:STDOUT: %.e54: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.686 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.da2: %ImplicitAs.type.5f9 = facet_value %C.a67, (%impl_witness.20f) [concrete] +// CHECK:STDOUT: %.519: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.da2 [concrete] // CHECK:STDOUT: %Convert.type.782: type = fn_type @Convert.7 [concrete] // CHECK:STDOUT: %Convert.625: %Convert.type.782 = struct_value () [concrete] // CHECK:STDOUT: %int_5.64b: Core.IntLiteral = int_value 5 [concrete] // CHECK:STDOUT: %Convert.bound.910: = bound_method %int_5.64b, %Convert.cb5 [concrete] // CHECK:STDOUT: %C.val.75e: %C.65c = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.9b3: = impl_witness (imports.%P.import_ref.e04) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.585: %ImplicitAs.type.5f9 = facet_value %C.65c, %impl_witness.9b3 [concrete] -// CHECK:STDOUT: %.a23: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.585 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b1d: %ImplicitAs.type.5f9 = facet_value %C.65c, (%impl_witness.9b3) [concrete] +// CHECK:STDOUT: %.359: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.b1d [concrete] // CHECK:STDOUT: %Convert.type.0e6: type = fn_type @Convert.8 [concrete] // CHECK:STDOUT: %Convert.73d: %Convert.type.0e6 = struct_value () [concrete] // CHECK:STDOUT: %int_6.462: Core.IntLiteral = int_value 6 [concrete] // CHECK:STDOUT: %Convert.bound.e3a: = bound_method %int_6.462, %Convert.cb5 [concrete] // CHECK:STDOUT: %C.val.02a: %C.898 = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.b5b: = impl_witness (imports.%P.import_ref.6aa) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.6e7: %ImplicitAs.type.5f9 = facet_value %C.898, %impl_witness.b5b [concrete] -// CHECK:STDOUT: %.73d: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.6e7 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.377: %ImplicitAs.type.5f9 = facet_value %C.898, (%impl_witness.b5b) [concrete] +// CHECK:STDOUT: %.ddb: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.377 [concrete] // CHECK:STDOUT: %Convert.type.9e9: type = fn_type @Convert.9 [concrete] // CHECK:STDOUT: %Convert.e8e: %Convert.type.9e9 = struct_value () [concrete] // CHECK:STDOUT: %int_7.29f: Core.IntLiteral = int_value 7 [concrete] // CHECK:STDOUT: %Convert.bound.06a: = bound_method %int_7.29f, %Convert.cb5 [concrete] // CHECK:STDOUT: %C.val.654: %C.f0a = struct_value () [concrete] // CHECK:STDOUT: %impl_witness.dfb: = impl_witness (imports.%P.import_ref.243) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.2de: %ImplicitAs.type.5f9 = facet_value %C.f0a, %impl_witness.dfb [concrete] -// CHECK:STDOUT: %.e43: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.2de [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.9f4: %ImplicitAs.type.5f9 = facet_value %C.f0a, (%impl_witness.dfb) [concrete] +// CHECK:STDOUT: %.97d: type = fn_type_with_self_type %Convert.type.334, %ImplicitAs.facet.9f4 [concrete] // CHECK:STDOUT: %Convert.type.fc1: type = fn_type @Convert.10 [concrete] // CHECK:STDOUT: %Convert.430: %Convert.type.fc1 = struct_value () [concrete] // CHECK:STDOUT: %Make.type: type = fn_type @Make [concrete] @@ -1352,7 +1352,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc8: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc8: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc8_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc8_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc8_34: = bound_method %int_0, %impl.elem0.loc8_34 [concrete = constants.%Convert.bound.04a] // CHECK:STDOUT: %int.convert_checked.loc8: init %i32.builtin = call %bound_method.loc8_34(%int_0) [concrete = constants.%int_0.a54] // CHECK:STDOUT: %.loc8_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc8 [concrete = constants.%int_0.a54] @@ -1362,7 +1362,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc8_24.3: init %C.76d = class_init (), %.loc8_24.2 [concrete = constants.%C.val.3c3] // CHECK:STDOUT: %.loc8_24.4: ref %C.76d = temporary %.loc8_24.2, %.loc8_24.3 // CHECK:STDOUT: %.loc8_26.1: ref %C.76d = converted %.loc8_24.1, %.loc8_24.4 -// CHECK:STDOUT: %impl.elem0.loc8_35: %.a6f = impl_witness_access constants.%impl_witness.368, element0 [concrete = constants.%Convert.4f5] +// CHECK:STDOUT: %impl.elem0.loc8_35: %.3f5 = impl_witness_access constants.%impl_witness.368, element0 [concrete = constants.%Convert.4f5] // CHECK:STDOUT: %bound_method.loc8_35: = bound_method %.loc8_26.1, %impl.elem0.loc8_35 // CHECK:STDOUT: %.loc8_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc8_26.2: %C.76d = bind_value %.loc8_26.1 @@ -1379,7 +1379,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc9: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc9: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc9_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc9_34: = bound_method %int_1, %impl.elem0.loc9_34 [concrete = constants.%Convert.bound.92d] // CHECK:STDOUT: %int.convert_checked.loc9: init %i32.builtin = call %bound_method.loc9_34(%int_1) [concrete = constants.%int_1.f38] // CHECK:STDOUT: %.loc9_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc9 [concrete = constants.%int_1.f38] @@ -1389,7 +1389,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc9_24.3: init %C.012 = class_init (), %.loc9_24.2 [concrete = constants.%C.val.172] // CHECK:STDOUT: %.loc9_24.4: ref %C.012 = temporary %.loc9_24.2, %.loc9_24.3 // CHECK:STDOUT: %.loc9_26.1: ref %C.012 = converted %.loc9_24.1, %.loc9_24.4 -// CHECK:STDOUT: %impl.elem0.loc9_35: %.a51 = impl_witness_access constants.%impl_witness.29f, element0 [concrete = constants.%Convert.ecc] +// CHECK:STDOUT: %impl.elem0.loc9_35: %.a31 = impl_witness_access constants.%impl_witness.29f, element0 [concrete = constants.%Convert.ecc] // CHECK:STDOUT: %bound_method.loc9_35: = bound_method %.loc9_26.1, %impl.elem0.loc9_35 // CHECK:STDOUT: %.loc9_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc9_26.2: %C.012 = bind_value %.loc9_26.1 @@ -1406,7 +1406,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc10: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc10: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc10_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc10_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc10_34: = bound_method %int_2, %impl.elem0.loc10_34 [concrete = constants.%Convert.bound.1b9] // CHECK:STDOUT: %int.convert_checked.loc10: init %i32.builtin = call %bound_method.loc10_34(%int_2) [concrete = constants.%int_2.5a1] // CHECK:STDOUT: %.loc10_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc10 [concrete = constants.%int_2.5a1] @@ -1416,7 +1416,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc10_24.3: init %C.3e6 = class_init (), %.loc10_24.2 [concrete = constants.%C.val.418] // CHECK:STDOUT: %.loc10_24.4: ref %C.3e6 = temporary %.loc10_24.2, %.loc10_24.3 // CHECK:STDOUT: %.loc10_26.1: ref %C.3e6 = converted %.loc10_24.1, %.loc10_24.4 -// CHECK:STDOUT: %impl.elem0.loc10_35: %.d2a = impl_witness_access constants.%impl_witness.3ac, element0 [concrete = constants.%Convert.c2b] +// CHECK:STDOUT: %impl.elem0.loc10_35: %.fa2 = impl_witness_access constants.%impl_witness.3ac, element0 [concrete = constants.%Convert.c2b] // CHECK:STDOUT: %bound_method.loc10_35: = bound_method %.loc10_26.1, %impl.elem0.loc10_35 // CHECK:STDOUT: %.loc10_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc10_26.2: %C.3e6 = bind_value %.loc10_26.1 @@ -1433,7 +1433,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc11: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc11: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] -// CHECK:STDOUT: %impl.elem0.loc11_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc11_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc11_34: = bound_method %int_3, %impl.elem0.loc11_34 [concrete = constants.%Convert.bound.b6b] // CHECK:STDOUT: %int.convert_checked.loc11: init %i32.builtin = call %bound_method.loc11_34(%int_3) [concrete = constants.%int_3.a0f] // CHECK:STDOUT: %.loc11_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc11 [concrete = constants.%int_3.a0f] @@ -1443,7 +1443,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc11_24.3: init %C.4d9 = class_init (), %.loc11_24.2 [concrete = constants.%C.val.bba] // CHECK:STDOUT: %.loc11_24.4: ref %C.4d9 = temporary %.loc11_24.2, %.loc11_24.3 // CHECK:STDOUT: %.loc11_26.1: ref %C.4d9 = converted %.loc11_24.1, %.loc11_24.4 -// CHECK:STDOUT: %impl.elem0.loc11_35: %.6c2 = impl_witness_access constants.%impl_witness.b40, element0 [concrete = constants.%Convert.2b5] +// CHECK:STDOUT: %impl.elem0.loc11_35: %.f5d = impl_witness_access constants.%impl_witness.b40, element0 [concrete = constants.%Convert.2b5] // CHECK:STDOUT: %bound_method.loc11_35: = bound_method %.loc11_26.1, %impl.elem0.loc11_35 // CHECK:STDOUT: %.loc11_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc11_26.2: %C.4d9 = bind_value %.loc11_26.1 @@ -1460,7 +1460,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc12: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc12: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] -// CHECK:STDOUT: %impl.elem0.loc12_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc12_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc12_34: = bound_method %int_4, %impl.elem0.loc12_34 [concrete = constants.%Convert.bound.626] // CHECK:STDOUT: %int.convert_checked.loc12: init %i32.builtin = call %bound_method.loc12_34(%int_4) [concrete = constants.%int_4.4f1] // CHECK:STDOUT: %.loc12_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc12 [concrete = constants.%int_4.4f1] @@ -1470,7 +1470,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc12_24.3: init %C.a67 = class_init (), %.loc12_24.2 [concrete = constants.%C.val.4b6] // CHECK:STDOUT: %.loc12_24.4: ref %C.a67 = temporary %.loc12_24.2, %.loc12_24.3 // CHECK:STDOUT: %.loc12_26.1: ref %C.a67 = converted %.loc12_24.1, %.loc12_24.4 -// CHECK:STDOUT: %impl.elem0.loc12_35: %.e54 = impl_witness_access constants.%impl_witness.20f, element0 [concrete = constants.%Convert.625] +// CHECK:STDOUT: %impl.elem0.loc12_35: %.519 = impl_witness_access constants.%impl_witness.20f, element0 [concrete = constants.%Convert.625] // CHECK:STDOUT: %bound_method.loc12_35: = bound_method %.loc12_26.1, %impl.elem0.loc12_35 // CHECK:STDOUT: %.loc12_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc12_26.2: %C.a67 = bind_value %.loc12_26.1 @@ -1487,7 +1487,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc13: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc13: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] -// CHECK:STDOUT: %impl.elem0.loc13_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc13_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc13_34: = bound_method %int_5, %impl.elem0.loc13_34 [concrete = constants.%Convert.bound.910] // CHECK:STDOUT: %int.convert_checked.loc13: init %i32.builtin = call %bound_method.loc13_34(%int_5) [concrete = constants.%int_5.967] // CHECK:STDOUT: %.loc13_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc13 [concrete = constants.%int_5.967] @@ -1497,7 +1497,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc13_24.3: init %C.65c = class_init (), %.loc13_24.2 [concrete = constants.%C.val.75e] // CHECK:STDOUT: %.loc13_24.4: ref %C.65c = temporary %.loc13_24.2, %.loc13_24.3 // CHECK:STDOUT: %.loc13_26.1: ref %C.65c = converted %.loc13_24.1, %.loc13_24.4 -// CHECK:STDOUT: %impl.elem0.loc13_35: %.a23 = impl_witness_access constants.%impl_witness.9b3, element0 [concrete = constants.%Convert.73d] +// CHECK:STDOUT: %impl.elem0.loc13_35: %.359 = impl_witness_access constants.%impl_witness.9b3, element0 [concrete = constants.%Convert.73d] // CHECK:STDOUT: %bound_method.loc13_35: = bound_method %.loc13_26.1, %impl.elem0.loc13_35 // CHECK:STDOUT: %.loc13_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc13_26.2: %C.65c = bind_value %.loc13_26.1 @@ -1514,7 +1514,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc14: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc14: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] -// CHECK:STDOUT: %impl.elem0.loc14_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc14_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc14_34: = bound_method %int_6, %impl.elem0.loc14_34 [concrete = constants.%Convert.bound.e3a] // CHECK:STDOUT: %int.convert_checked.loc14: init %i32.builtin = call %bound_method.loc14_34(%int_6) [concrete = constants.%int_6.ec5] // CHECK:STDOUT: %.loc14_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc14 [concrete = constants.%int_6.ec5] @@ -1524,7 +1524,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc14_24.3: init %C.898 = class_init (), %.loc14_24.2 [concrete = constants.%C.val.02a] // CHECK:STDOUT: %.loc14_24.4: ref %C.898 = temporary %.loc14_24.2, %.loc14_24.3 // CHECK:STDOUT: %.loc14_26.1: ref %C.898 = converted %.loc14_24.1, %.loc14_24.4 -// CHECK:STDOUT: %impl.elem0.loc14_35: %.73d = impl_witness_access constants.%impl_witness.b5b, element0 [concrete = constants.%Convert.e8e] +// CHECK:STDOUT: %impl.elem0.loc14_35: %.ddb = impl_witness_access constants.%impl_witness.b5b, element0 [concrete = constants.%Convert.e8e] // CHECK:STDOUT: %bound_method.loc14_35: = bound_method %.loc14_26.1, %impl.elem0.loc14_35 // CHECK:STDOUT: %.loc14_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc14_26.2: %C.898 = bind_value %.loc14_26.1 @@ -1541,7 +1541,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %P.ref.loc15: = name_ref P, imports.%P [concrete = imports.%P] // CHECK:STDOUT: %C.ref.loc15: %C.type = name_ref C, imports.%P.C [concrete = constants.%C.generic] // CHECK:STDOUT: %int_7: Core.IntLiteral = int_value 7 [concrete = constants.%int_7.29f] -// CHECK:STDOUT: %impl.elem0.loc15_34: %.624 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] +// CHECK:STDOUT: %impl.elem0.loc15_34: %.5e0 = impl_witness_access constants.%impl_witness.39c, element0 [concrete = constants.%Convert.cb5] // CHECK:STDOUT: %bound_method.loc15_34: = bound_method %int_7, %impl.elem0.loc15_34 [concrete = constants.%Convert.bound.06a] // CHECK:STDOUT: %int.convert_checked.loc15: init %i32.builtin = call %bound_method.loc15_34(%int_7) [concrete = constants.%int_7.6ae] // CHECK:STDOUT: %.loc15_34.1: %i32.builtin = value_of_initializer %int.convert_checked.loc15 [concrete = constants.%int_7.6ae] @@ -1551,7 +1551,7 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: %.loc15_24.3: init %C.f0a = class_init (), %.loc15_24.2 [concrete = constants.%C.val.654] // CHECK:STDOUT: %.loc15_24.4: ref %C.f0a = temporary %.loc15_24.2, %.loc15_24.3 // CHECK:STDOUT: %.loc15_26.1: ref %C.f0a = converted %.loc15_24.1, %.loc15_24.4 -// CHECK:STDOUT: %impl.elem0.loc15_35: %.e43 = impl_witness_access constants.%impl_witness.dfb, element0 [concrete = constants.%Convert.430] +// CHECK:STDOUT: %impl.elem0.loc15_35: %.97d = impl_witness_access constants.%impl_witness.dfb, element0 [concrete = constants.%Convert.430] // CHECK:STDOUT: %bound_method.loc15_35: = bound_method %.loc15_26.1, %impl.elem0.loc15_35 // CHECK:STDOUT: %.loc15_35.1: ref %D = temporary_storage // CHECK:STDOUT: %.loc15_26.2: %C.f0a = bind_value %.loc15_26.1 diff --git a/toolchain/check/testdata/return/returned_var.carbon b/toolchain/check/testdata/return/returned_var.carbon index 6091073c5104..f22981184fd2 100644 --- a/toolchain/check/testdata/return/returned_var.carbon +++ b/toolchain/check/testdata/return/returned_var.carbon @@ -42,8 +42,8 @@ fn G() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -126,7 +126,7 @@ fn G() -> i32 { // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc17_43.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc17_43.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_43.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_43.1: = bound_method %int_1, %impl.elem0.loc17_43.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc17_43.1: = specific_function %impl.elem0.loc17_43.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_43.2: = bound_method %int_1, %specific_fn.loc17_43.1 [concrete = constants.%bound_method.9a1] @@ -134,7 +134,7 @@ fn G() -> i32 { // CHECK:STDOUT: %.loc17_43.2: init %i32 = converted %int_1, %int.convert_checked.loc17_43.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc17_43.3: ref %i32 = class_element_access %return, element0 // CHECK:STDOUT: %.loc17_43.4: init %i32 = initialize_from %.loc17_43.2 to %.loc17_43.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc17_43.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc17_43.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc17_43.3: = bound_method %int_2, %impl.elem0.loc17_43.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc17_43.2: = specific_function %impl.elem0.loc17_43.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc17_43.4: = bound_method %int_2, %specific_fn.loc17_43.2 [concrete = constants.%bound_method.b92] @@ -158,7 +158,7 @@ fn G() -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %result.var: ref %i32 = var result // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc22_12.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc22_12.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/return/returned_var_scope.carbon b/toolchain/check/testdata/return/returned_var_scope.carbon index 88076e4bc913..3fd04727cecc 100644 --- a/toolchain/check/testdata/return/returned_var_scope.carbon +++ b/toolchain/check/testdata/return/returned_var_scope.carbon @@ -41,8 +41,8 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -115,7 +115,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %int_0.loc13: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc13: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_14.1: = bound_method %int_0.loc13, %impl.elem0.loc13 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_14.2: = bound_method %int_0.loc13, %specific_fn.loc13 [concrete = constants.%bound_method.b6e] @@ -140,7 +140,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc16: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc16: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc16_14.1: = bound_method %int_1, %impl.elem0.loc16 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc16_14.2: = bound_method %int_1, %specific_fn.loc16 [concrete = constants.%bound_method.9a1] @@ -156,7 +156,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !if.else.loc15: // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc18: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_11.1: = bound_method %int_0.loc18, %impl.elem0.loc18 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_11.2: = bound_method %int_0.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.b6e] @@ -178,7 +178,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %i32 = var v // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc23: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc23: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc23_14.1: = bound_method %int_0, %impl.elem0.loc23 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc23: = specific_function %impl.elem0.loc23, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc23_14.2: = bound_method %int_0, %specific_fn.loc23 [concrete = constants.%bound_method.b6e] @@ -200,7 +200,7 @@ fn EnclosingButAfter(b: bool) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %i32 = var w // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc26: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc26: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc26_12.1: = bound_method %int_1, %impl.elem0.loc26 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc26: = specific_function %impl.elem0.loc26, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc26_12.2: = bound_method %int_1, %specific_fn.loc26 [concrete = constants.%bound_method.9a1] diff --git a/toolchain/check/testdata/return/struct.carbon b/toolchain/check/testdata/return/struct.carbon index 0daa19c66bd7..dd515177872a 100644 --- a/toolchain/check/testdata/return/struct.carbon +++ b/toolchain/check/testdata/return/struct.carbon @@ -27,8 +27,8 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_3.1ba, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -67,7 +67,7 @@ fn Main() -> {.a: i32} { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc12_17.1: %struct_type.a.a6c = struct_literal (%int_3) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_17.1: = bound_method %int_3, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_17.2: = bound_method %int_3, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/return/tuple.carbon b/toolchain/check/testdata/return/tuple.carbon index 4ab6225dd3c0..9a026d34525c 100644 --- a/toolchain/check/testdata/return/tuple.carbon +++ b/toolchain/check/testdata/return/tuple.carbon @@ -30,8 +30,8 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.75f: = bound_method %int_15.447, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.984: = bound_method %int_15.447, %Convert.specific_fn [concrete] @@ -77,7 +77,7 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %int_15: Core.IntLiteral = int_value 15 [concrete = constants.%int_15.447] // CHECK:STDOUT: %int_35: Core.IntLiteral = int_value 35 [concrete = constants.%int_35.c79] // CHECK:STDOUT: %.loc13_17.1: %tuple.type.f94 = tuple_literal (%int_15, %int_35) -// CHECK:STDOUT: %impl.elem0.loc13_17.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_17.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_17.1: = bound_method %int_15, %impl.elem0.loc13_17.1 [concrete = constants.%Convert.bound.75f] // CHECK:STDOUT: %specific_fn.loc13_17.1: = specific_function %impl.elem0.loc13_17.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_17.2: = bound_method %int_15, %specific_fn.loc13_17.1 [concrete = constants.%bound_method.984] @@ -85,7 +85,7 @@ fn Main() -> (i32, i32) { // CHECK:STDOUT: %.loc13_17.2: init %i32 = converted %int_15, %int.convert_checked.loc13_17.1 [concrete = constants.%int_15.7f7] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %return, element0 // CHECK:STDOUT: %.loc13_17.3: init %i32 = initialize_from %.loc13_17.2 to %tuple.elem0 [concrete = constants.%int_15.7f7] -// CHECK:STDOUT: %impl.elem0.loc13_17.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc13_17.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc13_17.3: = bound_method %int_35, %impl.elem0.loc13_17.2 [concrete = constants.%Convert.bound.76a] // CHECK:STDOUT: %specific_fn.loc13_17.2: = specific_function %impl.elem0.loc13_17.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_17.4: = bound_method %int_35, %specific_fn.loc13_17.2 [concrete = constants.%bound_method.231] diff --git a/toolchain/check/testdata/return/value.carbon b/toolchain/check/testdata/return/value.carbon index a8fe05ed31e5..0ce34aea8cef 100644 --- a/toolchain/check/testdata/return/value.carbon +++ b/toolchain/check/testdata/return/value.carbon @@ -25,8 +25,8 @@ fn Main() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -62,7 +62,7 @@ fn Main() -> i32 { // CHECK:STDOUT: fn @Main() -> %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_11.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_11.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/struct/fail_non_member_access.carbon b/toolchain/check/testdata/struct/fail_non_member_access.carbon index 7b0e9937b5dc..27957c9d2efa 100644 --- a/toolchain/check/testdata/struct/fail_non_member_access.carbon +++ b/toolchain/check/testdata/struct/fail_non_member_access.carbon @@ -28,8 +28,8 @@ var y: i32 = x.b; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] @@ -80,7 +80,7 @@ var y: i32 = x.b; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_27.1: %struct_type.a.a6c = struct_literal (%int_4) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index 3817638a3458..e18d22a1303c 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -65,8 +65,8 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -172,14 +172,14 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc9_28.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc9_28.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9_28.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_28.1: = bound_method %int_1, %impl.elem0.loc9_28.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc9_28.1: = specific_function %impl.elem0.loc9_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_28.2: = bound_method %int_1, %specific_fn.loc9_28.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc9_28.1: init %i32 = call %bound_method.loc9_28.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_28.2: %i32 = value_of_initializer %int.convert_checked.loc9_28.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_28.3: %i32 = converted %int_1, %.loc9_28.2 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc9_28.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9_28.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_28.3: = bound_method %int_2, %impl.elem0.loc9_28.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc9_28.2: = specific_function %impl.elem0.loc9_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_28.4: = bound_method %int_2, %specific_fn.loc9_28.2 [concrete = constants.%bound_method.b92] @@ -215,7 +215,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0.loc4: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc4_31.1: %struct_type.a.a6c = struct_literal (%int_0.loc4) -// CHECK:STDOUT: %impl.elem0.loc4: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc4: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_31.1: = bound_method %int_0.loc4, %impl.elem0.loc4 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc4: = specific_function %impl.elem0.loc4, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_31.2: = bound_method %int_0.loc4, %specific_fn.loc4 [concrete = constants.%bound_method.b6e] @@ -230,7 +230,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %.loc6_29.1: %struct_type.b.c.9af = struct_literal (%int_0.loc6_17, %.loc6_28.1) // CHECK:STDOUT: %int_0.loc6_37: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc6_38.1: %struct_type.a.d.b82 = struct_literal (%.loc6_29.1, %int_0.loc6_37) -// CHECK:STDOUT: %impl.elem0.loc6_29: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6_29: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_29.1: = bound_method %int_0.loc6_17, %impl.elem0.loc6_29 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc6_29: = specific_function %impl.elem0.loc6_29, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_29.2: = bound_method %int_0.loc6_17, %specific_fn.loc6_29 [concrete = constants.%bound_method.b6e] @@ -239,7 +239,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %.loc6_38.2: ref %struct_type.b.c.929 = struct_access file.%b_ref.var, element0 // CHECK:STDOUT: %.loc6_29.3: ref %i32 = struct_access %.loc6_38.2, element0 // CHECK:STDOUT: %.loc6_29.4: init %i32 = initialize_from %.loc6_29.2 to %.loc6_29.3 [concrete = constants.%int_0.6a9] -// CHECK:STDOUT: %impl.elem0.loc6_28: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6_28: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_28.1: = bound_method %int_0.loc6_26, %impl.elem0.loc6_28 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc6_28: = specific_function %impl.elem0.loc6_28, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_28.2: = bound_method %int_0.loc6_26, %specific_fn.loc6_28 [concrete = constants.%bound_method.b6e] @@ -251,7 +251,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %.loc6_29.7: init %tuple.type.a1c = initialize_from %.loc6_29.6 to %.loc6_29.5 [concrete = constants.%tuple] // CHECK:STDOUT: %.loc6_29.8: init %struct_type.b.c.929 = struct_init (%.loc6_29.4, %.loc6_29.7) to %.loc6_38.2 [concrete = constants.%struct.381] // CHECK:STDOUT: %.loc6_38.3: init %struct_type.b.c.929 = converted %.loc6_29.1, %.loc6_29.8 [concrete = constants.%struct.381] -// CHECK:STDOUT: %impl.elem0.loc6_38: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc6_38: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc6_38.1: = bound_method %int_0.loc6_37, %impl.elem0.loc6_38 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc6_38: = specific_function %impl.elem0.loc6_38, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_38.2: = bound_method %int_0.loc6_37, %specific_fn.loc6_38 [concrete = constants.%bound_method.b6e] @@ -300,8 +300,8 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %impl_witness.847: = impl_witness (imports.%Implicit.import_ref.773), @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.e14: type = fn_type @Convert.2, @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.4cb: %Convert.type.e14 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, %impl_witness.847 [concrete] -// CHECK:STDOUT: %.088: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, (%impl_witness.847) [concrete] +// CHECK:STDOUT: %.419: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.dc5: = bound_method %int_1.5b8, %Convert.4cb [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.4cb, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.c37: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -384,14 +384,14 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc6_25.1: %struct_type.a.b.cfd = struct_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc6_25.1: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc6_25.1: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc6_25.1: = bound_method %int_1, %impl.elem0.loc6_25.1 [concrete = constants.%Convert.bound.dc5] // CHECK:STDOUT: %specific_fn.loc6_25.1: = specific_function %impl.elem0.loc6_25.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_25.2: = bound_method %int_1, %specific_fn.loc6_25.1 [concrete = constants.%bound_method.c37] // CHECK:STDOUT: %int.convert_checked.loc6_25.1: init %i32 = call %bound_method.loc6_25.2(%int_1) [concrete = constants.%int_1.47b] // CHECK:STDOUT: %.loc6_25.2: %i32 = value_of_initializer %int.convert_checked.loc6_25.1 [concrete = constants.%int_1.47b] // CHECK:STDOUT: %.loc6_25.3: %i32 = converted %int_1, %.loc6_25.2 [concrete = constants.%int_1.47b] -// CHECK:STDOUT: %impl.elem0.loc6_25.2: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc6_25.2: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc6_25.3: = bound_method %int_2, %impl.elem0.loc6_25.2 [concrete = constants.%Convert.bound.30f] // CHECK:STDOUT: %specific_fn.loc6_25.2: = specific_function %impl.elem0.loc6_25.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_25.4: = bound_method %int_2, %specific_fn.loc6_25.2 [concrete = constants.%bound_method.62b] @@ -591,8 +591,8 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %impl_witness.847: = impl_witness (imports.%Implicit.import_ref.773), @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.e14: type = fn_type @Convert.2, @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.4cb: %Convert.type.e14 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, %impl_witness.847 [concrete] -// CHECK:STDOUT: %.088: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, (%impl_witness.847) [concrete] +// CHECK:STDOUT: %.419: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.a00: = bound_method %int_3.1ba, %Convert.4cb [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.4cb, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.fc5: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -647,14 +647,14 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc10_29.1: %struct_type.a.b.cfd = struct_literal (%int_3, %int_4) -// CHECK:STDOUT: %impl.elem0.loc10_29.1: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc10_29.1: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc10_29.1: = bound_method %int_3, %impl.elem0.loc10_29.1 [concrete = constants.%Convert.bound.a00] // CHECK:STDOUT: %specific_fn.loc10_29.1: = specific_function %impl.elem0.loc10_29.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_29.2: = bound_method %int_3, %specific_fn.loc10_29.1 [concrete = constants.%bound_method.fc5] // CHECK:STDOUT: %int.convert_checked.loc10_29.1: init %i32 = call %bound_method.loc10_29.2(%int_3) [concrete = constants.%int_3.d47] // CHECK:STDOUT: %.loc10_29.2: %i32 = value_of_initializer %int.convert_checked.loc10_29.1 [concrete = constants.%int_3.d47] // CHECK:STDOUT: %.loc10_29.3: %i32 = converted %int_3, %.loc10_29.2 [concrete = constants.%int_3.d47] -// CHECK:STDOUT: %impl.elem0.loc10_29.2: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc10_29.2: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc10_29.3: = bound_method %int_4, %impl.elem0.loc10_29.2 [concrete = constants.%Convert.bound.694] // CHECK:STDOUT: %specific_fn.loc10_29.2: = specific_function %impl.elem0.loc10_29.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_29.4: = bound_method %int_4, %specific_fn.loc10_29.2 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/struct/member_access.carbon b/toolchain/check/testdata/struct/member_access.carbon index 3a9145a48ace..fd7b2bc97e49 100644 --- a/toolchain/check/testdata/struct/member_access.carbon +++ b/toolchain/check/testdata/struct/member_access.carbon @@ -29,8 +29,8 @@ var z: i32 = y; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -100,7 +100,7 @@ var z: i32 = y; // CHECK:STDOUT: %.loc11_46.1: %struct_type.a.b.fbb = struct_literal (%float, %int_1) // CHECK:STDOUT: %.loc11_46.2: ref f64 = struct_access file.%x.var, element0 // CHECK:STDOUT: %.loc11_46.3: init f64 = initialize_from %float to %.loc11_46.2 [concrete = constants.%float] -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_46.1: = bound_method %int_1, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_46.2: = bound_method %int_1, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/struct/one_entry.carbon b/toolchain/check/testdata/struct/one_entry.carbon index 15ab1c6231c0..1648e10e99fa 100644 --- a/toolchain/check/testdata/struct/one_entry.carbon +++ b/toolchain/check/testdata/struct/one_entry.carbon @@ -24,8 +24,8 @@ var y: {.a: i32} = x; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] @@ -77,7 +77,7 @@ var y: {.a: i32} = x; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_27.1: %struct_type.a.a6c = struct_literal (%int_4) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/struct/partially_const.carbon b/toolchain/check/testdata/struct/partially_const.carbon index a282d310e6c3..f159f0daa5fb 100644 --- a/toolchain/check/testdata/struct/partially_const.carbon +++ b/toolchain/check/testdata/struct/partially_const.carbon @@ -27,8 +27,8 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -80,7 +80,7 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %n.ref: %i32 = name_ref n, %n // CHECK:STDOUT: %int_0.loc12_32: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc12_33.1: %struct_type.a.b.c.1ee = struct_literal (%int_0.loc12_16, %n.ref, %int_0.loc12_32) -// CHECK:STDOUT: %impl.elem0.loc12_33.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_33.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_33.1: = bound_method %int_0.loc12_16, %impl.elem0.loc12_33.1 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc12_33.1: = specific_function %impl.elem0.loc12_33.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_33.2: = bound_method %int_0.loc12_16, %specific_fn.loc12_33.1 [concrete = constants.%bound_method] @@ -90,7 +90,7 @@ fn Make(n: i32) -> {.a: i32, .b: i32, .c: i32} { // CHECK:STDOUT: %.loc12_33.4: init %i32 = initialize_from %.loc12_33.2 to %.loc12_33.3 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc12_33.5: ref %i32 = struct_access %return, element1 // CHECK:STDOUT: %.loc12_33.6: init %i32 = initialize_from %n.ref to %.loc12_33.5 -// CHECK:STDOUT: %impl.elem0.loc12_33.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12_33.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_33.3: = bound_method %int_0.loc12_32, %impl.elem0.loc12_33.2 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc12_33.2: = specific_function %impl.elem0.loc12_33.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_33.4: = bound_method %int_0.loc12_32, %specific_fn.loc12_33.2 [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/struct/tuple_as_element.carbon b/toolchain/check/testdata/struct/tuple_as_element.carbon index f17b2b8f2238..a75b43714fcd 100644 --- a/toolchain/check/testdata/struct/tuple_as_element.carbon +++ b/toolchain/check/testdata/struct/tuple_as_element.carbon @@ -28,8 +28,8 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -95,7 +95,7 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc11_49.1: %tuple.type.985 = tuple_literal (%int_2) // CHECK:STDOUT: %.loc11_50.1: %struct_type.a.b.057 = struct_literal (%int_1, %.loc11_49.1) -// CHECK:STDOUT: %impl.elem0.loc11_50: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_50: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_50.1: = bound_method %int_1, %impl.elem0.loc11_50 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_50: = specific_function %impl.elem0.loc11_50, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_50.2: = bound_method %int_1, %specific_fn.loc11_50 [concrete = constants.%bound_method.9a1] @@ -103,7 +103,7 @@ var y: {.a: i32, .b: (i32,)} = x; // CHECK:STDOUT: %.loc11_50.2: init %i32 = converted %int_1, %int.convert_checked.loc11_50 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc11_50.3: ref %i32 = struct_access file.%x.var, element0 // CHECK:STDOUT: %.loc11_50.4: init %i32 = initialize_from %.loc11_50.2 to %.loc11_50.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc11_49: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_49: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_49.1: = bound_method %int_2, %impl.elem0.loc11_49 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_49: = specific_function %impl.elem0.loc11_49, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_49.2: = bound_method %int_2, %specific_fn.loc11_49 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/struct/two_entries.carbon b/toolchain/check/testdata/struct/two_entries.carbon index e80daec8385c..7d2176bab58c 100644 --- a/toolchain/check/testdata/struct/two_entries.carbon +++ b/toolchain/check/testdata/struct/two_entries.carbon @@ -28,8 +28,8 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -68,14 +68,14 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %i32.loc11_22: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a.b.loc11: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.501] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc11_44.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_44.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_44.1: = bound_method @__global_init.%int_1.loc11, %impl.elem0.loc11_44.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc11_44.1: = specific_function %impl.elem0.loc11_44.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_44.2: = bound_method @__global_init.%int_1.loc11, %specific_fn.loc11_44.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc11_44.1: init %i32 = call %bound_method.loc11_44.2(@__global_init.%int_1.loc11) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc11_44.1: %i32 = value_of_initializer %int.convert_checked.loc11_44.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc11_44.2: %i32 = converted @__global_init.%int_1.loc11, %.loc11_44.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc11_44.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_44.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_44.3: = bound_method @__global_init.%int_2.loc11, %impl.elem0.loc11_44.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_44.2: = specific_function %impl.elem0.loc11_44.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_44.4: = bound_method @__global_init.%int_2.loc11, %specific_fn.loc11_44.2 [concrete = constants.%bound_method.b92] @@ -133,7 +133,7 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2.loc14: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc14_44.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc14, %int_2.loc14) -// CHECK:STDOUT: %impl.elem0.loc14_44.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_44.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_44.1: = bound_method %int_1.loc14, %impl.elem0.loc14_44.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc14_44.1: = specific_function %impl.elem0.loc14_44.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_44.2: = bound_method %int_1.loc14, %specific_fn.loc14_44.1 [concrete = constants.%bound_method.9a1] @@ -141,7 +141,7 @@ var y: {.a: i32, .b: i32} = x; // CHECK:STDOUT: %.loc14_44.2: init %i32 = converted %int_1.loc14, %int.convert_checked.loc14_44.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc14_44.3: ref %i32 = struct_access file.%x.var, element0 // CHECK:STDOUT: %.loc14_44.4: init %i32 = initialize_from %.loc14_44.2 to %.loc14_44.3 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_44.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_44.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_44.3: = bound_method %int_2.loc14, %impl.elem0.loc14_44.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc14_44.2: = specific_function %impl.elem0.loc14_44.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_44.4: = bound_method %int_2.loc14, %specific_fn.loc14_44.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/tuple/access/element_access.carbon b/toolchain/check/testdata/tuple/access/element_access.carbon index 2ccbcd130e5f..204cf9d22c20 100644 --- a/toolchain/check/testdata/tuple/access/element_access.carbon +++ b/toolchain/check/testdata/tuple/access/element_access.carbon @@ -26,8 +26,8 @@ var c: i32 = b.0; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -93,7 +93,7 @@ var c: i32 = b.0; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_21.1: %tuple.type.985 = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_21.1: = bound_method %int_12, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_21.2: = bound_method %int_12, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/tuple/access/fail_access_error.carbon b/toolchain/check/testdata/tuple/access/fail_access_error.carbon index f2416eed30e7..034ae27e266f 100644 --- a/toolchain/check/testdata/tuple/access/fail_access_error.carbon +++ b/toolchain/check/testdata/tuple/access/fail_access_error.carbon @@ -30,8 +30,8 @@ var b: i32 = a.(oops); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -90,7 +90,7 @@ var b: i32 = a.(oops); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11_27.1: = specific_function %impl.elem0.loc11_27.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_12, %specific_fn.loc11_27.1 [concrete = constants.%bound_method.dae] @@ -98,7 +98,7 @@ var b: i32 = a.(oops); // CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [concrete = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [concrete = constants.%int_12.1e1] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.3: = bound_method %int_6, %impl.elem0.loc11_27.2 [concrete = constants.%Convert.bound.ce9] // CHECK:STDOUT: %specific_fn.loc11_27.2: = specific_function %impl.elem0.loc11_27.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.4: = bound_method %int_6, %specific_fn.loc11_27.2 [concrete = constants.%bound_method.efa] diff --git a/toolchain/check/testdata/tuple/access/fail_large_index.carbon b/toolchain/check/testdata/tuple/access/fail_large_index.carbon index 941e09926112..ecf8e359b68d 100644 --- a/toolchain/check/testdata/tuple/access/fail_large_index.carbon +++ b/toolchain/check/testdata/tuple/access/fail_large_index.carbon @@ -35,8 +35,8 @@ var d: i32 = b.(0x7FFF_FFFF); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -114,7 +114,7 @@ var d: i32 = b.(0x7FFF_FFFF); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %.loc11_21.1: %tuple.type.985 = tuple_literal (%int_12) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_21.1: = bound_method %int_12, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_21.2: = bound_method %int_12, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon b/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon index 2451c8a951f2..2ae6292fc2bc 100644 --- a/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon +++ b/toolchain/check/testdata/tuple/access/fail_negative_indexing.carbon @@ -31,8 +31,8 @@ var b: i32 = a.(-10); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -44,8 +44,8 @@ var b: i32 = a.(-10); // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete] // CHECK:STDOUT: %Op.type.e42: type = fn_type @Op.14 [concrete] // CHECK:STDOUT: %impl_witness.0f6: = impl_witness (imports.%Core.import_ref.c15) [concrete] -// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, %impl_witness.0f6 [concrete] -// CHECK:STDOUT: %.45d: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] +// CHECK:STDOUT: %Negate.facet: %Negate.type = facet_value Core.IntLiteral, (%impl_witness.0f6) [concrete] +// CHECK:STDOUT: %.690: type = fn_type_with_self_type %Op.type.e42, %Negate.facet [concrete] // CHECK:STDOUT: %Op.type.1be: type = fn_type @Op.15 [concrete] // CHECK:STDOUT: %Op.bba: %Op.type.1be = struct_value () [concrete] // CHECK:STDOUT: %Op.bound: = bound_method %int_10, %Op.bba [concrete] @@ -100,7 +100,7 @@ var b: i32 = a.(-10); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11_27.1: = specific_function %impl.elem0.loc11_27.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_12, %specific_fn.loc11_27.1 [concrete = constants.%bound_method.dae] @@ -108,7 +108,7 @@ var b: i32 = a.(-10); // CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [concrete = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [concrete = constants.%int_12.1e1] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.3: = bound_method %int_6, %impl.elem0.loc11_27.2 [concrete = constants.%Convert.bound.ce9] // CHECK:STDOUT: %specific_fn.loc11_27.2: = specific_function %impl.elem0.loc11_27.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.4: = bound_method %int_6, %specific_fn.loc11_27.2 [concrete = constants.%bound_method.efa] @@ -121,7 +121,7 @@ var b: i32 = a.(-10); // CHECK:STDOUT: assign file.%a.var, %.loc11_1 // CHECK:STDOUT: %a.ref: ref %tuple.type.d07 = name_ref a, file.%a // CHECK:STDOUT: %int_10: Core.IntLiteral = int_value 10 [concrete = constants.%int_10] -// CHECK:STDOUT: %impl.elem0.loc16: %.45d = impl_witness_access constants.%impl_witness.0f6, element0 [concrete = constants.%Op.bba] +// CHECK:STDOUT: %impl.elem0.loc16: %.690 = impl_witness_access constants.%impl_witness.0f6, element0 [concrete = constants.%Op.bba] // CHECK:STDOUT: %bound_method.loc16: = bound_method %int_10, %impl.elem0.loc16 [concrete = constants.%Op.bound] // CHECK:STDOUT: %int.snegate: init Core.IntLiteral = call %bound_method.loc16(%int_10) [concrete = constants.%int_-10] // CHECK:STDOUT: %.loc16_17.1: Core.IntLiteral = value_of_initializer %int.snegate [concrete = constants.%int_-10] diff --git a/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon b/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon index 5353a499d2b0..f90c17541268 100644 --- a/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon +++ b/toolchain/check/testdata/tuple/access/fail_non_deterministic_type.carbon @@ -31,8 +31,8 @@ var c: i32 = a.(b); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ef9: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b92: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -105,7 +105,7 @@ var c: i32 = a.(b); // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc11_26.1: %tuple.type.f94 = tuple_literal (%int_2, %int_3) -// CHECK:STDOUT: %impl.elem0.loc11_26.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_26.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_26.1: = bound_method %int_2, %impl.elem0.loc11_26.1 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc11_26.1: = specific_function %impl.elem0.loc11_26.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_26.2: = bound_method %int_2, %specific_fn.loc11_26.1 [concrete = constants.%bound_method.b92] @@ -113,7 +113,7 @@ var c: i32 = a.(b); // CHECK:STDOUT: %.loc11_26.2: init %i32 = converted %int_2, %int.convert_checked.loc11_26.1 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_26.3: init %i32 = initialize_from %.loc11_26.2 to %tuple.elem0 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc11_26.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_26.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_26.3: = bound_method %int_3, %impl.elem0.loc11_26.2 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc11_26.2: = specific_function %impl.elem0.loc11_26.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_26.4: = bound_method %int_3, %specific_fn.loc11_26.2 [concrete = constants.%bound_method.047] @@ -125,7 +125,7 @@ var c: i32 = a.(b); // CHECK:STDOUT: %.loc11_1: init %tuple.type.d07 = converted %.loc11_26.1, %.loc11_26.6 [concrete = constants.%tuple] // CHECK:STDOUT: assign file.%a.var, %.loc11_1 // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %impl.elem0.loc12: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc12: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc12_1.1: = bound_method %int_0, %impl.elem0.loc12 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc12_1.2: = bound_method %int_0, %specific_fn.loc12 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon b/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon index 1ddbc91519c2..a876ef1e8712 100644 --- a/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon +++ b/toolchain/check/testdata/tuple/access/fail_non_int_indexing.carbon @@ -33,8 +33,8 @@ var b: i32 = a.(2.6); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -93,7 +93,7 @@ var b: i32 = a.(2.6); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11_27.1: = specific_function %impl.elem0.loc11_27.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_12, %specific_fn.loc11_27.1 [concrete = constants.%bound_method.dae] @@ -101,7 +101,7 @@ var b: i32 = a.(2.6); // CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [concrete = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [concrete = constants.%int_12.1e1] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.3: = bound_method %int_6, %impl.elem0.loc11_27.2 [concrete = constants.%Convert.bound.ce9] // CHECK:STDOUT: %specific_fn.loc11_27.2: = specific_function %impl.elem0.loc11_27.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.4: = bound_method %int_6, %specific_fn.loc11_27.2 [concrete = constants.%bound_method.efa] diff --git a/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon b/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon index eb2cffffad98..74f257e64d2a 100644 --- a/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon +++ b/toolchain/check/testdata/tuple/access/fail_non_tuple_access.carbon @@ -41,8 +41,8 @@ fn Main() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_5.64b, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_5.64b, %Convert.specific_fn [concrete] @@ -81,7 +81,7 @@ fn Main() { // CHECK:STDOUT: %int_5.loc18_35: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %int_5.loc18_38: Core.IntLiteral = int_value 5 [concrete = constants.%int_5.64b] // CHECK:STDOUT: %.loc18_39.1: %tuple.type = tuple_literal (%int_5.loc18_35, %int_5.loc18_38) -// CHECK:STDOUT: %impl.elem0.loc18_39.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_39.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_39.1: = bound_method %int_5.loc18_35, %impl.elem0.loc18_39.1 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc18_39.1: = specific_function %impl.elem0.loc18_39.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_39.2: = bound_method %int_5.loc18_35, %specific_fn.loc18_39.1 [concrete = constants.%bound_method] @@ -90,7 +90,7 @@ fn Main() { // CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc18_39.3: ref %i32 = array_index %non_tuple.var, %int_0.loc18 // CHECK:STDOUT: %.loc18_39.4: init %i32 = initialize_from %.loc18_39.2 to %.loc18_39.3 [concrete = constants.%int_5.0f6] -// CHECK:STDOUT: %impl.elem0.loc18_39.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_39.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_39.3: = bound_method %int_5.loc18_38, %impl.elem0.loc18_39.2 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn.loc18_39.2: = specific_function %impl.elem0.loc18_39.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_39.4: = bound_method %int_5.loc18_38, %specific_fn.loc18_39.2 [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon b/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon index 70b2ecb31b6d..161db0e52617 100644 --- a/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon +++ b/toolchain/check/testdata/tuple/access/fail_out_of_bound_access.carbon @@ -30,8 +30,8 @@ var b: i32 = a.2; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -90,7 +90,7 @@ var b: i32 = a.2; // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc11_27.1: %tuple.type.f94 = tuple_literal (%int_12, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.1: = bound_method %int_12, %impl.elem0.loc11_27.1 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11_27.1: = specific_function %impl.elem0.loc11_27.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.2: = bound_method %int_12, %specific_fn.loc11_27.1 [concrete = constants.%bound_method.dae] @@ -98,7 +98,7 @@ var b: i32 = a.2; // CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_12, %int.convert_checked.loc11_27.1 [concrete = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_27.3: init %i32 = initialize_from %.loc11_27.2 to %tuple.elem0 [concrete = constants.%int_12.1e1] -// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_27.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_27.3: = bound_method %int_6, %impl.elem0.loc11_27.2 [concrete = constants.%Convert.bound.ce9] // CHECK:STDOUT: %specific_fn.loc11_27.2: = specific_function %impl.elem0.loc11_27.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_27.4: = bound_method %int_6, %specific_fn.loc11_27.2 [concrete = constants.%bound_method.efa] diff --git a/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon b/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon index 8028b388b687..e779ba8eb255 100644 --- a/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon +++ b/toolchain/check/testdata/tuple/access/fail_out_of_bound_not_literal.carbon @@ -30,8 +30,8 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -92,7 +92,7 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12.6a3] // CHECK:STDOUT: %int_34: Core.IntLiteral = int_value 34 [concrete = constants.%int_34.3f9] // CHECK:STDOUT: %.loc11_28.1: %tuple.type.f94 = tuple_literal (%int_12, %int_34) -// CHECK:STDOUT: %impl.elem0.loc11_28.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_28.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_28.1: = bound_method %int_12, %impl.elem0.loc11_28.1 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11_28.1: = specific_function %impl.elem0.loc11_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_28.2: = bound_method %int_12, %specific_fn.loc11_28.1 [concrete = constants.%bound_method.dae] @@ -100,7 +100,7 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %.loc11_28.2: init %i32 = converted %int_12, %int.convert_checked.loc11_28.1 [concrete = constants.%int_12.1e1] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_28.3: init %i32 = initialize_from %.loc11_28.2 to %tuple.elem0 [concrete = constants.%int_12.1e1] -// CHECK:STDOUT: %impl.elem0.loc11_28.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_28.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_28.3: = bound_method %int_34, %impl.elem0.loc11_28.2 [concrete = constants.%Convert.bound.82c] // CHECK:STDOUT: %specific_fn.loc11_28.2: = specific_function %impl.elem0.loc11_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_28.4: = bound_method %int_34, %specific_fn.loc11_28.2 [concrete = constants.%bound_method.34d] diff --git a/toolchain/check/testdata/tuple/access/index_not_literal.carbon b/toolchain/check/testdata/tuple/access/index_not_literal.carbon index 79555cb94a66..f06c45b12fb3 100644 --- a/toolchain/check/testdata/tuple/access/index_not_literal.carbon +++ b/toolchain/check/testdata/tuple/access/index_not_literal.carbon @@ -32,8 +32,8 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.f7f: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.f7f [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.2b8: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet.2b8 [concrete] // CHECK:STDOUT: %Convert.bound.82c: = bound_method %int_34.3f9, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn.b6f: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.34d: = bound_method %int_34.3f9, %Convert.specific_fn.b6f [concrete] @@ -48,8 +48,8 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %impl_witness.882: = impl_witness (imports.%Core.import_ref.78a), @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4fd: type = fn_type @Convert.5, @impl.686(%int_32) [concrete] // CHECK:STDOUT: %Convert.197: %Convert.type.4fd = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, %impl_witness.882 [concrete] -// CHECK:STDOUT: %.214: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] +// CHECK:STDOUT: %As.facet: %As.type.fd4 = facet_value Core.IntLiteral, (%impl_witness.882) [concrete] +// CHECK:STDOUT: %.249: type = fn_type_with_self_type %Convert.type.99b, %As.facet [concrete] // CHECK:STDOUT: %Convert.bound.129: = bound_method %int_0.5c6, %Convert.197 [concrete] // CHECK:STDOUT: %Convert.specific_fn.aad: = specific_function %Convert.197, @Convert.5(%int_32) [concrete] // CHECK:STDOUT: %bound_method.46b: = bound_method %int_0.5c6, %Convert.specific_fn.aad [concrete] @@ -57,8 +57,8 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %impl_witness.023: = impl_witness (imports.%Core.import_ref.85c), @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.4ad: type = fn_type @Convert.3, @impl.971(%int_32) [concrete] // CHECK:STDOUT: %Convert.960: %Convert.type.4ad = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.e25: %ImplicitAs.type.2fd = facet_value %i32, %impl_witness.023 [concrete] -// CHECK:STDOUT: %.10e: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.e25 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ffe: %ImplicitAs.type.2fd = facet_value %i32, (%impl_witness.023) [concrete] +// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %Convert.type.71e, %ImplicitAs.facet.ffe [concrete] // CHECK:STDOUT: %Convert.bound.0fd: = bound_method %int_0.6a9, %Convert.960 [concrete] // CHECK:STDOUT: %Convert.specific_fn.8a8: = specific_function %Convert.960, @Convert.3(%int_32) [concrete] // CHECK:STDOUT: %bound_method.4b5: = bound_method %int_0.6a9, %Convert.specific_fn.8a8 [concrete] @@ -146,7 +146,7 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %.loc11_31.1: %tuple.type.3c2 = tuple_literal (%true, %int_34) // CHECK:STDOUT: %tuple.elem0.loc11: ref bool = tuple_access file.%a.var, element0 // CHECK:STDOUT: %.loc11_31.2: init bool = initialize_from %true to %tuple.elem0.loc11 [concrete = constants.%true] -// CHECK:STDOUT: %impl.elem0.loc11: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_31.1: = bound_method %int_34, %impl.elem0.loc11 [concrete = constants.%Convert.bound.82c] // CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn.b6f] // CHECK:STDOUT: %bound_method.loc11_31.2: = bound_method %int_34, %specific_fn.loc11 [concrete = constants.%bound_method.34d] @@ -170,14 +170,14 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc13: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc13_20.1: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0.loc13_20.1: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc13_20.1: = bound_method %int_0, %impl.elem0.loc13_20.1 [concrete = constants.%Convert.bound.129] // CHECK:STDOUT: %specific_fn.loc13_20.1: = specific_function %impl.elem0.loc13_20.1, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn.aad] // CHECK:STDOUT: %bound_method.loc13_20.2: = bound_method %int_0, %specific_fn.loc13_20.1 [concrete = constants.%bound_method.46b] // CHECK:STDOUT: %int.convert_checked.loc13_20.1: init %i32 = call %bound_method.loc13_20.2(%int_0) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc13_20.1: %i32 = value_of_initializer %int.convert_checked.loc13_20.1 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc13_20.2: %i32 = converted %int_0, %.loc13_20.1 [concrete = constants.%int_0.6a9] -// CHECK:STDOUT: %impl.elem0.loc13_20.2: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0.loc13_20.2: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc13_20.3: = bound_method %.loc13_20.2, %impl.elem0.loc13_20.2 [concrete = constants.%Convert.bound.0fd] // CHECK:STDOUT: %specific_fn.loc13_20.2: = specific_function %impl.elem0.loc13_20.2, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc13_20.4: = bound_method %.loc13_20.2, %specific_fn.loc13_20.2 [concrete = constants.%bound_method.4b5] @@ -191,7 +191,7 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_32.loc14: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc14: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %impl.elem0.loc14_29: %.214 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] +// CHECK:STDOUT: %impl.elem0.loc14_29: %.249 = impl_witness_access constants.%impl_witness.882, element0 [concrete = constants.%Convert.197] // CHECK:STDOUT: %bound_method.loc14_29.1: = bound_method %int_1.loc14, %impl.elem0.loc14_29 [concrete = constants.%Convert.bound.c1b] // CHECK:STDOUT: %specific_fn.loc14_29: = specific_function %impl.elem0.loc14_29, @Convert.5(constants.%int_32) [concrete = constants.%Convert.specific_fn.aad] // CHECK:STDOUT: %bound_method.loc14_29.2: = bound_method %int_1.loc14, %specific_fn.loc14_29 [concrete = constants.%bound_method.082] @@ -202,7 +202,7 @@ var d: i32 = a.({.index = 1 as i32}.index); // CHECK:STDOUT: %struct.loc14: %struct_type.index.6ea = struct_value (%.loc14_29.2) [concrete = constants.%struct.63a] // CHECK:STDOUT: %.loc14_35.2: %struct_type.index.6ea = converted %.loc14_35.1, %struct.loc14 [concrete = constants.%struct.63a] // CHECK:STDOUT: %.loc14_36.1: %i32 = struct_access %.loc14_35.2, element0 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc14_36: %.10e = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] +// CHECK:STDOUT: %impl.elem0.loc14_36: %.4d8 = impl_witness_access constants.%impl_witness.023, element0 [concrete = constants.%Convert.960] // CHECK:STDOUT: %bound_method.loc14_36.1: = bound_method %.loc14_36.1, %impl.elem0.loc14_36 [concrete = constants.%Convert.bound.faf] // CHECK:STDOUT: %specific_fn.loc14_36: = specific_function %impl.elem0.loc14_36, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn.8a8] // CHECK:STDOUT: %bound_method.loc14_36.2: = bound_method %.loc14_36.1, %specific_fn.loc14_36 [concrete = constants.%bound_method.711] diff --git a/toolchain/check/testdata/tuple/access/return_value_access.carbon b/toolchain/check/testdata/tuple/access/return_value_access.carbon index c518a7edede5..e768479e1a16 100644 --- a/toolchain/check/testdata/tuple/access/return_value_access.carbon +++ b/toolchain/check/testdata/tuple/access/return_value_access.carbon @@ -30,8 +30,8 @@ fn Run() -> i32 { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -85,7 +85,7 @@ fn Run() -> i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc11_30.1: %tuple.type.985 = tuple_literal (%int_0) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_30.1: = bound_method %int_0, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_30.2: = bound_method %int_0, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon b/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon index 9e17b6c680e6..5260e20257be 100644 --- a/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon +++ b/toolchain/check/testdata/tuple/fail_element_type_mismatch.carbon @@ -32,8 +32,8 @@ var x: (i32, i32) = (2, 65.89); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_2.ecc, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_2.ecc, %Convert.specific_fn [concrete] @@ -76,7 +76,7 @@ var x: (i32, i32) = (2, 65.89); // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %float: f64 = float_literal 65.890000000000001 [concrete = constants.%float] // CHECK:STDOUT: %.loc18_30.1: %tuple.type.2c1 = tuple_literal (%int_2, %float) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_30.1: = bound_method %int_2, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_30.2: = bound_method %int_2, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/tuple/import.carbon b/toolchain/check/testdata/tuple/import.carbon index 43a3c8f227b1..b95fa8787f26 100644 --- a/toolchain/check/testdata/tuple/import.carbon +++ b/toolchain/check/testdata/tuple/import.carbon @@ -68,8 +68,8 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.d04: = bound_method %int_0.5c6, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.b6e: = bound_method %int_0.5c6, %Convert.specific_fn [concrete] @@ -187,14 +187,14 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc9_18.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc9_18.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9_18.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_18.1: = bound_method %int_1, %impl.elem0.loc9_18.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc9_18.1: = specific_function %impl.elem0.loc9_18.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_18.2: = bound_method %int_1, %specific_fn.loc9_18.1 [concrete = constants.%bound_method.9a1] // CHECK:STDOUT: %int.convert_checked.loc9_18.1: init %i32 = call %bound_method.loc9_18.2(%int_1) [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_18.2: %i32 = value_of_initializer %int.convert_checked.loc9_18.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc9_18.3: %i32 = converted %int_1, %.loc9_18.2 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc9_18.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc9_18.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc9_18.3: = bound_method %int_2, %impl.elem0.loc9_18.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc9_18.2: = specific_function %impl.elem0.loc9_18.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_18.4: = bound_method %int_2, %specific_fn.loc9_18.2 [concrete = constants.%bound_method.b92] @@ -230,7 +230,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_0.loc4: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] // CHECK:STDOUT: %.loc4_24.1: %tuple.type.985 = tuple_literal (%int_0.loc4) -// CHECK:STDOUT: %impl.elem0.loc4: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc4: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc4_24.1: = bound_method %int_0.loc4, %impl.elem0.loc4 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc4: = specific_function %impl.elem0.loc4, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc4_24.2: = bound_method %int_0.loc4, %specific_fn.loc4 [concrete = constants.%bound_method.b6e] @@ -247,7 +247,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %.loc5_59.1: %tuple.type.f94 = tuple_literal (%int_2, %int_3) // CHECK:STDOUT: %.loc5_60.1: %tuple.type.d47 = tuple_literal (%.loc5_51.1, %.loc5_59.1) -// CHECK:STDOUT: %impl.elem0.loc5_47: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc5_47: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_47.1: = bound_method %int_0.loc5, %impl.elem0.loc5_47 [concrete = constants.%Convert.bound.d04] // CHECK:STDOUT: %specific_fn.loc5_47: = specific_function %impl.elem0.loc5_47, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_47.2: = bound_method %int_0.loc5, %specific_fn.loc5_47 [concrete = constants.%bound_method.b6e] @@ -258,7 +258,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %.loc5_47.3: init %tuple.type.a1c = tuple_init (%.loc5_47.2) to %tuple.elem0.loc5_51 [concrete = constants.%tuple.592] // CHECK:STDOUT: %.loc5_51.2: init %tuple.type.a1c = converted %.loc5_47.1, %.loc5_47.3 [concrete = constants.%tuple.592] // CHECK:STDOUT: %.loc5_51.3: init %tuple.type.a1c = initialize_from %.loc5_51.2 to %tuple.elem0.loc5_51 [concrete = constants.%tuple.592] -// CHECK:STDOUT: %impl.elem0.loc5_51: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc5_51: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_51.1: = bound_method %int_1, %impl.elem0.loc5_51 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc5_51: = specific_function %impl.elem0.loc5_51, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_51.2: = bound_method %int_1, %specific_fn.loc5_51 [concrete = constants.%bound_method.9a1] @@ -268,7 +268,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %.loc5_51.5: init %i32 = initialize_from %.loc5_51.4 to %tuple.elem1.loc5_51 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %.loc5_51.6: init %tuple.type.fe6 = tuple_init (%.loc5_51.3, %.loc5_51.5) to %tuple.elem0.loc5_60 [concrete = constants.%tuple.236] // CHECK:STDOUT: %.loc5_60.2: init %tuple.type.fe6 = converted %.loc5_51.1, %.loc5_51.6 [concrete = constants.%tuple.236] -// CHECK:STDOUT: %impl.elem0.loc5_59.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc5_59.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_59.1: = bound_method %int_2, %impl.elem0.loc5_59.1 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc5_59.1: = specific_function %impl.elem0.loc5_59.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_59.2: = bound_method %int_2, %specific_fn.loc5_59.1 [concrete = constants.%bound_method.b92] @@ -277,7 +277,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %tuple.elem1.loc5_60: ref %tuple.type.d07 = tuple_access file.%b_ref.var, element1 // CHECK:STDOUT: %tuple.elem0.loc5_59: ref %i32 = tuple_access %tuple.elem1.loc5_60, element0 // CHECK:STDOUT: %.loc5_59.3: init %i32 = initialize_from %.loc5_59.2 to %tuple.elem0.loc5_59 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %impl.elem0.loc5_59.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc5_59.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc5_59.3: = bound_method %int_3, %impl.elem0.loc5_59.2 [concrete = constants.%Convert.bound.b30] // CHECK:STDOUT: %specific_fn.loc5_59.2: = specific_function %impl.elem0.loc5_59.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc5_59.4: = bound_method %int_3, %specific_fn.loc5_59.2 [concrete = constants.%bound_method.047] @@ -330,8 +330,8 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %impl_witness.847: = impl_witness (imports.%Implicit.import_ref.773), @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.e14: type = fn_type @Convert.2, @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.4cb: %Convert.type.e14 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, %impl_witness.847 [concrete] -// CHECK:STDOUT: %.088: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, (%impl_witness.847) [concrete] +// CHECK:STDOUT: %.419: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.dc5: = bound_method %int_1.5b8, %Convert.4cb [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.4cb, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.c37: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -421,14 +421,14 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc6_15.1: %tuple.type.f94 = tuple_literal (%int_1, %int_2) -// CHECK:STDOUT: %impl.elem0.loc6_15.1: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc6_15.1: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc6_15.1: = bound_method %int_1, %impl.elem0.loc6_15.1 [concrete = constants.%Convert.bound.dc5] // CHECK:STDOUT: %specific_fn.loc6_15.1: = specific_function %impl.elem0.loc6_15.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_15.2: = bound_method %int_1, %specific_fn.loc6_15.1 [concrete = constants.%bound_method.c37] // CHECK:STDOUT: %int.convert_checked.loc6_15.1: init %i32 = call %bound_method.loc6_15.2(%int_1) [concrete = constants.%int_1.47b] // CHECK:STDOUT: %.loc6_15.2: %i32 = value_of_initializer %int.convert_checked.loc6_15.1 [concrete = constants.%int_1.47b] // CHECK:STDOUT: %.loc6_15.3: %i32 = converted %int_1, %.loc6_15.2 [concrete = constants.%int_1.47b] -// CHECK:STDOUT: %impl.elem0.loc6_15.2: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc6_15.2: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc6_15.3: = bound_method %int_2, %impl.elem0.loc6_15.2 [concrete = constants.%Convert.bound.30f] // CHECK:STDOUT: %specific_fn.loc6_15.2: = specific_function %impl.elem0.loc6_15.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc6_15.4: = bound_method %int_2, %specific_fn.loc6_15.2 [concrete = constants.%bound_method.62b] @@ -638,8 +638,8 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %impl_witness.847: = impl_witness (imports.%Implicit.import_ref.773), @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.e14: type = fn_type @Convert.2, @impl.a8d(%int_32) [concrete] // CHECK:STDOUT: %Convert.4cb: %Convert.type.e14 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, %impl_witness.847 [concrete] -// CHECK:STDOUT: %.088: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.b9e = facet_value Core.IntLiteral, (%impl_witness.847) [concrete] +// CHECK:STDOUT: %.419: type = fn_type_with_self_type %Convert.type.ea0, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.a00: = bound_method %int_3.1ba, %Convert.4cb [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.4cb, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.fc5: = bound_method %int_3.1ba, %Convert.specific_fn [concrete] @@ -694,14 +694,14 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3.1ba] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_19.1: %tuple.type.f94 = tuple_literal (%int_3, %int_4) -// CHECK:STDOUT: %impl.elem0.loc11_19.1: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc11_19.1: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc11_19.1: = bound_method %int_3, %impl.elem0.loc11_19.1 [concrete = constants.%Convert.bound.a00] // CHECK:STDOUT: %specific_fn.loc11_19.1: = specific_function %impl.elem0.loc11_19.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_19.2: = bound_method %int_3, %specific_fn.loc11_19.1 [concrete = constants.%bound_method.fc5] // CHECK:STDOUT: %int.convert_checked.loc11_19.1: init %i32 = call %bound_method.loc11_19.2(%int_3) [concrete = constants.%int_3.d47] // CHECK:STDOUT: %.loc11_19.2: %i32 = value_of_initializer %int.convert_checked.loc11_19.1 [concrete = constants.%int_3.d47] // CHECK:STDOUT: %.loc11_19.3: %i32 = converted %int_3, %.loc11_19.2 [concrete = constants.%int_3.d47] -// CHECK:STDOUT: %impl.elem0.loc11_19.2: %.088 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] +// CHECK:STDOUT: %impl.elem0.loc11_19.2: %.419 = impl_witness_access constants.%impl_witness.847, element0 [concrete = constants.%Convert.4cb] // CHECK:STDOUT: %bound_method.loc11_19.3: = bound_method %int_4, %impl.elem0.loc11_19.2 [concrete = constants.%Convert.bound.694] // CHECK:STDOUT: %specific_fn.loc11_19.2: = specific_function %impl.elem0.loc11_19.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_19.4: = bound_method %int_4, %specific_fn.loc11_19.2 [concrete = constants.%bound_method.b6e] diff --git a/toolchain/check/testdata/tuple/nested_tuple.carbon b/toolchain/check/testdata/tuple/nested_tuple.carbon index 110b2ff05e5a..5cc9c12f96c1 100644 --- a/toolchain/check/testdata/tuple/nested_tuple.carbon +++ b/toolchain/check/testdata/tuple/nested_tuple.carbon @@ -29,8 +29,8 @@ var x: ((i32, i32), i32) = ((12, 76), 6); // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.221: = bound_method %int_12.6a3, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.dae: = bound_method %int_12.6a3, %Convert.specific_fn [concrete] @@ -87,7 +87,7 @@ var x: ((i32, i32), i32) = ((12, 76), 6); // CHECK:STDOUT: %.loc11_36.1: %tuple.type.f94 = tuple_literal (%int_12, %int_76) // CHECK:STDOUT: %int_6: Core.IntLiteral = int_value 6 [concrete = constants.%int_6.462] // CHECK:STDOUT: %.loc11_40.1: %tuple.type.acf = tuple_literal (%.loc11_36.1, %int_6) -// CHECK:STDOUT: %impl.elem0.loc11_36.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_36.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_36.1: = bound_method %int_12, %impl.elem0.loc11_36.1 [concrete = constants.%Convert.bound.221] // CHECK:STDOUT: %specific_fn.loc11_36.1: = specific_function %impl.elem0.loc11_36.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_36.2: = bound_method %int_12, %specific_fn.loc11_36.1 [concrete = constants.%bound_method.dae] @@ -96,7 +96,7 @@ var x: ((i32, i32), i32) = ((12, 76), 6); // CHECK:STDOUT: %tuple.elem0.loc11_40: ref %tuple.type.d07 = tuple_access file.%x.var, element0 // CHECK:STDOUT: %tuple.elem0.loc11_36: ref %i32 = tuple_access %tuple.elem0.loc11_40, element0 // CHECK:STDOUT: %.loc11_36.3: init %i32 = initialize_from %.loc11_36.2 to %tuple.elem0.loc11_36 [concrete = constants.%int_12.1e1] -// CHECK:STDOUT: %impl.elem0.loc11_36.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_36.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_36.3: = bound_method %int_76, %impl.elem0.loc11_36.2 [concrete = constants.%Convert.bound.033] // CHECK:STDOUT: %specific_fn.loc11_36.2: = specific_function %impl.elem0.loc11_36.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_36.4: = bound_method %int_76, %specific_fn.loc11_36.2 [concrete = constants.%bound_method.ce4] @@ -106,7 +106,7 @@ var x: ((i32, i32), i32) = ((12, 76), 6); // CHECK:STDOUT: %.loc11_36.5: init %i32 = initialize_from %.loc11_36.4 to %tuple.elem1.loc11_36 [concrete = constants.%int_76.8dd] // CHECK:STDOUT: %.loc11_36.6: init %tuple.type.d07 = tuple_init (%.loc11_36.3, %.loc11_36.5) to %tuple.elem0.loc11_40 [concrete = constants.%tuple.737] // CHECK:STDOUT: %.loc11_40.2: init %tuple.type.d07 = converted %.loc11_36.1, %.loc11_36.6 [concrete = constants.%tuple.737] -// CHECK:STDOUT: %impl.elem0.loc11_40: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_40: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_40.1: = bound_method %int_6, %impl.elem0.loc11_40 [concrete = constants.%Convert.bound.ce9] // CHECK:STDOUT: %specific_fn.loc11_40: = specific_function %impl.elem0.loc11_40, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_40.2: = bound_method %int_6, %specific_fn.loc11_40 [concrete = constants.%bound_method.efa] diff --git a/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon b/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon index c1b3cf3f74b9..9d6a97a0e96f 100644 --- a/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon +++ b/toolchain/check/testdata/tuple/nested_tuple_in_place.carbon @@ -43,8 +43,8 @@ fn H() { // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ab5: = bound_method %int_1.5b8, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.9a1: = bound_method %int_1.5b8, %Convert.specific_fn [concrete] @@ -146,7 +146,7 @@ fn H() { // CHECK:STDOUT: %F.call: init %tuple.type.189 = call %F.ref() to %tuple.elem1 // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %.loc18_50.1: %tuple.type.667 = tuple_literal (%int_1, %F.call, %int_2) -// CHECK:STDOUT: %impl.elem0.loc18_50.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_50.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_50.1: = bound_method %int_1, %impl.elem0.loc18_50.1 [concrete = constants.%Convert.bound.ab5] // CHECK:STDOUT: %specific_fn.loc18_50.1: = specific_function %impl.elem0.loc18_50.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_50.2: = bound_method %int_1, %specific_fn.loc18_50.1 [concrete = constants.%bound_method.9a1] @@ -154,7 +154,7 @@ fn H() { // CHECK:STDOUT: %.loc18_50.2: init %i32 = converted %int_1, %int.convert_checked.loc18_50.1 [concrete = constants.%int_1.5d2] // CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %v.var, element0 // CHECK:STDOUT: %.loc18_50.3: init %i32 = initialize_from %.loc18_50.2 to %tuple.elem0 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %impl.elem0.loc18_50.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc18_50.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc18_50.3: = bound_method %int_2, %impl.elem0.loc18_50.2 [concrete = constants.%Convert.bound.ef9] // CHECK:STDOUT: %specific_fn.loc18_50.2: = specific_function %impl.elem0.loc18_50.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc18_50.4: = bound_method %int_2, %specific_fn.loc18_50.2 [concrete = constants.%bound_method.b92] diff --git a/toolchain/check/testdata/tuple/one_element.carbon b/toolchain/check/testdata/tuple/one_element.carbon index 985bd1b0b666..0a2cd5c00c8b 100644 --- a/toolchain/check/testdata/tuple/one_element.carbon +++ b/toolchain/check/testdata/tuple/one_element.carbon @@ -25,8 +25,8 @@ var y: (i32,) = x; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound: = bound_method %int_4.0c1, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] @@ -80,7 +80,7 @@ var y: (i32,) = x; // CHECK:STDOUT: !entry: // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %.loc11_20.1: %tuple.type.985 = tuple_literal (%int_4) -// CHECK:STDOUT: %impl.elem0: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_20.1: = bound_method %int_4, %impl.elem0 [concrete = constants.%Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_20.2: = bound_method %int_4, %specific_fn [concrete = constants.%bound_method] diff --git a/toolchain/check/testdata/tuple/two_elements.carbon b/toolchain/check/testdata/tuple/two_elements.carbon index 6afd57a869c7..4cae31ba498b 100644 --- a/toolchain/check/testdata/tuple/two_elements.carbon +++ b/toolchain/check/testdata/tuple/two_elements.carbon @@ -29,8 +29,8 @@ var y: (i32, i32) = x; // CHECK:STDOUT: %impl_witness.d39: = impl_witness (imports.%Core.import_ref.a5b), @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.type.035: type = fn_type @Convert.2, @impl.4f9(%int_32) [concrete] // CHECK:STDOUT: %Convert.956: %Convert.type.035 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, %impl_witness.d39 [concrete] -// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.205 = facet_value Core.IntLiteral, (%impl_witness.d39) [concrete] +// CHECK:STDOUT: %.be7: type = fn_type_with_self_type %Convert.type.1b6, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Convert.bound.ac3: = bound_method %int_4.0c1, %Convert.956 [concrete] // CHECK:STDOUT: %Convert.specific_fn: = specific_function %Convert.956, @Convert.2(%int_32) [concrete] // CHECK:STDOUT: %bound_method.1da: = bound_method %int_4.0c1, %Convert.specific_fn [concrete] @@ -70,14 +70,14 @@ var y: (i32, i32) = x; // CHECK:STDOUT: %.loc11_17.2: %tuple.type.24b = tuple_literal (%i32.loc11_9, %i32.loc11_14) // CHECK:STDOUT: %.loc11_17.3: type = converted %.loc11_17.2, constants.%tuple.type.d07 [concrete = constants.%tuple.type.d07] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc11_28.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_28.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_28.1: = bound_method @__global_init.%int_4.loc11, %impl.elem0.loc11_28.1 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc11_28.1: = specific_function %impl.elem0.loc11_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_28.2: = bound_method @__global_init.%int_4.loc11, %specific_fn.loc11_28.1 [concrete = constants.%bound_method.1da] // CHECK:STDOUT: %int.convert_checked.loc11_28.1: init %i32 = call %bound_method.loc11_28.2(@__global_init.%int_4.loc11) [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc11_28.1: %i32 = value_of_initializer %int.convert_checked.loc11_28.1 [concrete = constants.%int_4.940] // CHECK:STDOUT: %.loc11_28.2: %i32 = converted @__global_init.%int_4.loc11, %.loc11_28.1 [concrete = constants.%int_4.940] -// CHECK:STDOUT: %impl.elem0.loc11_28.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc11_28.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc11_28.3: = bound_method @__global_init.%int_102.loc11, %impl.elem0.loc11_28.2 [concrete = constants.%Convert.bound.063] // CHECK:STDOUT: %specific_fn.loc11_28.2: = specific_function %impl.elem0.loc11_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_28.4: = bound_method @__global_init.%int_102.loc11, %specific_fn.loc11_28.2 [concrete = constants.%bound_method.c20] @@ -138,7 +138,7 @@ var y: (i32, i32) = x; // CHECK:STDOUT: %int_4.loc14: Core.IntLiteral = int_value 4 [concrete = constants.%int_4.0c1] // CHECK:STDOUT: %int_102.loc14: Core.IntLiteral = int_value 102 [concrete = constants.%int_102.b54] // CHECK:STDOUT: %.loc14_28.1: %tuple.type.f94 = tuple_literal (%int_4.loc14, %int_102.loc14) -// CHECK:STDOUT: %impl.elem0.loc14_28.1: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_28.1: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_28.1: = bound_method %int_4.loc14, %impl.elem0.loc14_28.1 [concrete = constants.%Convert.bound.ac3] // CHECK:STDOUT: %specific_fn.loc14_28.1: = specific_function %impl.elem0.loc14_28.1, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_28.2: = bound_method %int_4.loc14, %specific_fn.loc14_28.1 [concrete = constants.%bound_method.1da] @@ -146,7 +146,7 @@ var y: (i32, i32) = x; // CHECK:STDOUT: %.loc14_28.2: init %i32 = converted %int_4.loc14, %int.convert_checked.loc14_28.1 [concrete = constants.%int_4.940] // CHECK:STDOUT: %tuple.elem0.loc14: ref %i32 = tuple_access file.%x.var, element0 // CHECK:STDOUT: %.loc14_28.3: init %i32 = initialize_from %.loc14_28.2 to %tuple.elem0.loc14 [concrete = constants.%int_4.940] -// CHECK:STDOUT: %impl.elem0.loc14_28.2: %.a0b = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %impl.elem0.loc14_28.2: %.be7 = impl_witness_access constants.%impl_witness.d39, element0 [concrete = constants.%Convert.956] // CHECK:STDOUT: %bound_method.loc14_28.3: = bound_method %int_102.loc14, %impl.elem0.loc14_28.2 [concrete = constants.%Convert.bound.063] // CHECK:STDOUT: %specific_fn.loc14_28.2: = specific_function %impl.elem0.loc14_28.2, @Convert.2(constants.%int_32) [concrete = constants.%Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc14_28.4: = bound_method %int_102.loc14, %specific_fn.loc14_28.2 [concrete = constants.%bound_method.c20] diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index 355b2fa7d0c3..4b99ad0de731 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -142,9 +142,9 @@ fn NotEmptyStruct() { // CHECK:STDOUT: %Impls.type: type = fn_type @Impls [concrete] // CHECK:STDOUT: %Impls: %Impls.type = struct_value () [concrete] // CHECK:STDOUT: %.Self.as_type.541: type = facet_access_type %.Self.258 [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.258 [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type.541, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.258, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type.541, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %W: %I_where.type = bind_symbolic_name W, 0 [symbolic] // CHECK:STDOUT: %W.patt: %I_where.type = symbolic_binding_pattern W, 0 [symbolic] // CHECK:STDOUT: %And.type: type = fn_type @And [concrete] @@ -214,8 +214,8 @@ fn NotEmptyStruct() { // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc15_38: type = facet_access_type %.Self.ref.loc15_38 [symbolic_self = constants.%.Self.as_type.541] // CHECK:STDOUT: %.loc15_38: type = converted %.Self.ref.loc15_38, %.Self.as_type.loc15_38 [symbolic_self = constants.%.Self.as_type.541] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref.loc15_38 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref.loc15_38, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc15_50: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc15_14.2: type = where_expr %.Self [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_impls %.loc15_20, %J.ref @@ -314,9 +314,9 @@ fn NotEmptyStruct() { // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.%Associated [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %K.facet: %K.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %L.type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %K.facet: %K.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %L.type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0 [symbolic_self] // CHECK:STDOUT: %K_where.type: type = facet_type <@K where TODO> [concrete] // CHECK:STDOUT: %W: %K_where.type = bind_symbolic_name W, 0 [symbolic] @@ -354,8 +354,8 @@ fn NotEmptyStruct() { // 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: %.loc11_36.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: %L.type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: %L.type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc11_36.2: type = converted %impl.elem0, %as_type [symbolic_self = constants.%as_type] diff --git a/toolchain/check/testdata/where_expr/designator.carbon b/toolchain/check/testdata/where_expr/designator.carbon index 4e0777d81ddc..5152b706f1ba 100644 --- a/toolchain/check/testdata/where_expr/designator.carbon +++ b/toolchain/check/testdata/where_expr/designator.carbon @@ -102,9 +102,9 @@ class D { // 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.258 [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.258 [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.258, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %U: %I_where.type = bind_symbolic_name U, 0 [symbolic] // CHECK:STDOUT: %U.patt: %I_where.type = symbolic_binding_pattern U, 0 [symbolic] // CHECK:STDOUT: %PeriodMember.type: type = fn_type @PeriodMember [concrete] @@ -158,8 +158,8 @@ class D { // 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: %.loc10_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_41: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_23.2: type = where_expr %.Self [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_equivalent %impl.elem0, %.loc10_41 diff --git a/toolchain/check/testdata/where_expr/dot_self_index.carbon b/toolchain/check/testdata/where_expr/dot_self_index.carbon index bdc5aad49a2a..9926f8135272 100644 --- a/toolchain/check/testdata/where_expr/dot_self_index.carbon +++ b/toolchain/check/testdata/where_expr/dot_self_index.carbon @@ -41,16 +41,16 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %assoc0.68f673.2: %Empty.assoc_type.54c14f.2 = assoc_entity element0, @Empty.%A [symbolic] // CHECK:STDOUT: %require_complete.22f: = require_complete_type %Empty.type.3e5fde.2 [symbolic] // CHECK:STDOUT: %.Self.as_type.a75: type = facet_access_type %.Self.c95 [symbolic] -// CHECK:STDOUT: %.Self.as_wit.da4: = facet_access_witness %.Self.c95 [symbolic] -// CHECK:STDOUT: %Empty.facet.bea: %Empty.type.3e5fde.2 = facet_value %.Self.as_type.a75, %.Self.as_wit.da4 [symbolic] -// CHECK:STDOUT: %impl.elem0.41c: type = impl_witness_access %.Self.as_wit.da4, element0 [symbolic] +// CHECK:STDOUT: %.Self.as_wit.iface0.663: = facet_access_witness %.Self.c95, element0 [symbolic] +// CHECK:STDOUT: %Empty.facet.782: %Empty.type.3e5fde.2 = facet_value %.Self.as_type.a75, (%.Self.as_wit.iface0.663) [symbolic] +// CHECK:STDOUT: %impl.elem0.d0b: type = impl_witness_access %.Self.as_wit.iface0.663, element0 [symbolic] // CHECK:STDOUT: %ptr.79f: type = ptr_type %T [symbolic] -// CHECK:STDOUT: %Empty_where.type.4ed: type = facet_type <@Empty, @Empty(%T) where %impl.elem0.41c = %ptr.79f> [symbolic] +// CHECK:STDOUT: %Empty_where.type.5a8: type = facet_type <@Empty, @Empty(%T) where %impl.elem0.d0b = %ptr.79f> [symbolic] // CHECK:STDOUT: %V: type = bind_symbolic_name V, 1 [symbolic] // CHECK:STDOUT: %V.patt: type = symbolic_binding_pattern V, 1 [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.510: = require_complete_type %Empty_where.type.4ed [symbolic] +// CHECK:STDOUT: %require_complete.796: = require_complete_type %Empty_where.type.5a8 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %Empty.type.f0b: type = facet_type <@Empty, @Empty(%i32)> [concrete] @@ -58,18 +58,18 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.assoc_type.a46: type = assoc_entity_type %Empty.type.f0b [concrete] // CHECK:STDOUT: %assoc0.0c3: %Empty.assoc_type.a46 = assoc_entity element0, @Empty.%A [concrete] // CHECK:STDOUT: %.Self.as_type.920: type = facet_access_type %.Self.e6e [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.581: = facet_access_witness %.Self.e6e [symbolic_self] -// CHECK:STDOUT: %Empty.facet.933: %Empty.type.f0b = facet_value %.Self.as_type.920, %.Self.as_wit.581 [symbolic_self] -// CHECK:STDOUT: %impl.elem0.797: type = impl_witness_access %.Self.as_wit.581, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0.67d: = facet_access_witness %.Self.e6e, element0 [symbolic_self] +// CHECK:STDOUT: %Empty.facet.311: %Empty.type.f0b = facet_value %.Self.as_type.920, (%.Self.as_wit.iface0.67d) [symbolic_self] +// CHECK:STDOUT: %impl.elem0.1bd: type = impl_witness_access %.Self.as_wit.iface0.67d, element0 [symbolic_self] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] -// CHECK:STDOUT: %Empty_where.type.a58: type = facet_type <@Empty, @Empty(%i32) where %impl.elem0.797 = %ptr.235> [concrete] +// CHECK:STDOUT: %Empty_where.type.52c: type = facet_type <@Empty, @Empty(%i32) where %impl.elem0.1bd = %ptr.235> [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %complete_type.091: = complete_type_witness %Empty.type.f0b [concrete] // CHECK:STDOUT: %H.specific_fn: = specific_function %H, @H(%i32, bool) [concrete] -// CHECK:STDOUT: %complete_type.5e7: = complete_type_witness %Empty_where.type.a58 [concrete] +// CHECK:STDOUT: %complete_type.6bd: = complete_type_witness %Empty_where.type.52c [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -96,13 +96,13 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %T.patt.loc18_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc18_6.2 (constants.%T.patt)] -// CHECK:STDOUT: %U.patt: @H.%Empty_where.type (%Empty_where.type.4ed) = binding_pattern U -// CHECK:STDOUT: %U.param_patt: @H.%Empty_where.type (%Empty_where.type.4ed) = value_param_pattern %U.patt, call_param0 +// CHECK:STDOUT: %U.patt: @H.%Empty_where.type (%Empty_where.type.5a8) = binding_pattern U +// CHECK:STDOUT: %U.param_patt: @H.%Empty_where.type (%Empty_where.type.5a8) = value_param_pattern %U.patt, call_param0 // CHECK:STDOUT: %V.patt.loc18_43.1: type = symbolic_binding_pattern V, 1 [symbolic = %V.patt.loc18_43.2 (constants.%V.patt)] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.loc18_6.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc18_6.2 (constants.%T)] -// CHECK:STDOUT: %U.param: @H.%Empty_where.type (%Empty_where.type.4ed) = value_param call_param0 -// CHECK:STDOUT: %.loc18_28.1: type = splice_block %.loc18_28.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.4ed)] { +// CHECK:STDOUT: %U.param: @H.%Empty_where.type (%Empty_where.type.5a8) = value_param call_param0 +// CHECK:STDOUT: %.loc18_28.1: type = splice_block %.loc18_28.2 [symbolic = %Empty_where.type (constants.%Empty_where.type.5a8)] { // CHECK:STDOUT: %Empty.ref: %Empty.type.d5a = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.generic] // CHECK:STDOUT: %T.ref.loc18_25: type = name_ref T, %T.loc18_6.1 [symbolic = %T.loc18_6.2 (constants.%T)] // CHECK:STDOUT: %Empty.type.loc18_26.1: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc18_26.2 (constants.%Empty.type.3e5fde.2)] @@ -112,23 +112,23 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %A.ref: @H.%Empty.assoc_type (%Empty.assoc_type.54c14f.2) = name_ref A, %.loc18_34.1 [symbolic = %assoc0 (constants.%assoc0.68f673.2)] // CHECK:STDOUT: %.Self.as_type.loc18_34.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc18_34.2 (constants.%.Self.as_type.a75)] // CHECK:STDOUT: %.loc18_34.2: type = converted %.Self.ref, %.Self.as_type.loc18_34.1 [symbolic = %.Self.as_type.loc18_34.2 (constants.%.Self.as_type.a75)] -// CHECK:STDOUT: %.Self.as_wit.loc18_34.1: = facet_access_witness %.Self.ref [symbolic = %.Self.as_wit.loc18_34.2 (constants.%.Self.as_wit.da4)] -// CHECK:STDOUT: %impl.elem0.loc18_34.1: type = impl_witness_access %.Self.as_wit.loc18_34.1, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.41c)] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_34.1: = facet_access_witness %.Self.ref, element0 [symbolic = %.Self.as_wit.iface0.loc18_34.2 (constants.%.Self.as_wit.iface0.663)] +// CHECK:STDOUT: %impl.elem0.loc18_34.1: type = impl_witness_access %.Self.as_wit.iface0.loc18_34.1, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.d0b)] // CHECK:STDOUT: %T.ref.loc18_39: type = name_ref T, %T.loc18_6.1 [symbolic = %T.loc18_6.2 (constants.%T)] // CHECK:STDOUT: %ptr.loc18_40.1: type = ptr_type %T [symbolic = %ptr.loc18_40.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %.loc18_28.2: type = where_expr %.Self.1 [symbolic = %Empty_where.type (constants.%Empty_where.type.4ed)] { +// CHECK:STDOUT: %.loc18_28.2: type = where_expr %.Self.1 [symbolic = %Empty_where.type (constants.%Empty_where.type.5a8)] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_34.1, %ptr.loc18_40.1 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U: @H.%Empty_where.type (%Empty_where.type.4ed) = bind_name U, %U.param +// CHECK:STDOUT: %U: @H.%Empty_where.type (%Empty_where.type.5a8) = bind_name U, %U.param // CHECK:STDOUT: %V.loc18_43.1: type = bind_symbolic_name V, 1 [symbolic = %V.loc18_43.2 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %U.patt: %Empty_where.type.a58 = binding_pattern U -// CHECK:STDOUT: %U.param_patt: %Empty_where.type.a58 = value_param_pattern %U.patt, call_param0 +// CHECK:STDOUT: %U.patt: %Empty_where.type.52c = binding_pattern U +// CHECK:STDOUT: %U.param_patt: %Empty_where.type.52c = value_param_pattern %U.patt, call_param0 // CHECK:STDOUT: } { -// CHECK:STDOUT: %U.param: %Empty_where.type.a58 = value_param call_param0 -// CHECK:STDOUT: %.loc20_20.1: type = splice_block %.loc20_20.2 [concrete = constants.%Empty_where.type.a58] { +// CHECK:STDOUT: %U.param: %Empty_where.type.52c = value_param call_param0 +// CHECK:STDOUT: %.loc20_20.1: type = splice_block %.loc20_20.2 [concrete = constants.%Empty_where.type.52c] { // CHECK:STDOUT: %Empty.ref: %Empty.type.d5a = name_ref Empty, file.%Empty.decl [concrete = constants.%Empty.generic] // CHECK:STDOUT: %int_32.loc20_15: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc20_15: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -139,16 +139,16 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %A.ref: %Empty.assoc_type.a46 = name_ref A, %.loc20_26.1 [concrete = constants.%assoc0.0c3] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.920] // CHECK:STDOUT: %.loc20_26.2: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.920] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit.581] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0.797] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0.67d] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0.1bd] // CHECK:STDOUT: %int_32.loc20_31: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc20_31: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %ptr: type = ptr_type %i32 [concrete = constants.%ptr.235] -// CHECK:STDOUT: %.loc20_20.2: type = where_expr %.Self [concrete = constants.%Empty_where.type.a58] { +// CHECK:STDOUT: %.loc20_20.2: type = where_expr %.Self [concrete = constants.%Empty_where.type.52c] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %ptr // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %U: %Empty_where.type.a58 = bind_name U, %U.param +// CHECK:STDOUT: %U: %Empty_where.type.52c = bind_name U, %U.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -188,28 +188,28 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.assoc_type: type = assoc_entity_type @H.%Empty.type.loc18_26.2 (%Empty.type.3e5fde.2) [symbolic = %Empty.assoc_type (constants.%Empty.assoc_type.54c14f.2)] // CHECK:STDOUT: %assoc0: @H.%Empty.assoc_type (%Empty.assoc_type.54c14f.2) = assoc_entity element0, @Empty.%A [symbolic = %assoc0 (constants.%assoc0.68f673.2)] // CHECK:STDOUT: %.Self.as_type.loc18_34.2: type = facet_access_type %.Self.2 [symbolic = %.Self.as_type.loc18_34.2 (constants.%.Self.as_type.a75)] -// CHECK:STDOUT: %.Self.as_wit.loc18_34.2: = facet_access_witness %.Self.2 [symbolic = %.Self.as_wit.loc18_34.2 (constants.%.Self.as_wit.da4)] -// CHECK:STDOUT: %impl.elem0.loc18_34.2: type = impl_witness_access %.Self.as_wit.loc18_34.2, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.41c)] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_34.2: = facet_access_witness %.Self.2, element0 [symbolic = %.Self.as_wit.iface0.loc18_34.2 (constants.%.Self.as_wit.iface0.663)] +// CHECK:STDOUT: %impl.elem0.loc18_34.2: type = impl_witness_access %.Self.as_wit.iface0.loc18_34.2, element0 [symbolic = %impl.elem0.loc18_34.2 (constants.%impl.elem0.d0b)] // CHECK:STDOUT: %ptr.loc18_40.2: type = ptr_type @H.%T.loc18_6.2 (%T) [symbolic = %ptr.loc18_40.2 (constants.%ptr.79f)] -// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc18_6.2) where %impl.elem0.loc18_34.2 (constants.%impl.elem0.41c) = %ptr.loc18_40.2 (constants.%ptr.79f)> [symbolic = %Empty_where.type (constants.%Empty_where.type.4ed)] +// CHECK:STDOUT: %Empty_where.type: type = facet_type <@Empty, @Empty(%T.loc18_6.2) where %impl.elem0.loc18_34.2 (constants.%impl.elem0.d0b) = %ptr.loc18_40.2 (constants.%ptr.79f)> [symbolic = %Empty_where.type (constants.%Empty_where.type.5a8)] // CHECK:STDOUT: %V.loc18_43.2: type = bind_symbolic_name V, 1 [symbolic = %V.loc18_43.2 (constants.%V)] // CHECK:STDOUT: %V.patt.loc18_43.2: type = symbolic_binding_pattern V, 1 [symbolic = %V.patt.loc18_43.2 (constants.%V.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc18_17: = require_complete_type @H.%Empty_where.type (%Empty_where.type.4ed) [symbolic = %require_complete.loc18_17 (constants.%require_complete.510)] +// CHECK:STDOUT: %require_complete.loc18_17: = require_complete_type @H.%Empty_where.type (%Empty_where.type.5a8) [symbolic = %require_complete.loc18_17 (constants.%require_complete.796)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%T.patt.loc18_6.1: type, %U.param_patt: @H.%Empty_where.type (%Empty_where.type.4ed), %V.patt.loc18_43.1: type) { +// CHECK:STDOUT: fn(%T.patt.loc18_6.1: type, %U.param_patt: @H.%Empty_where.type (%Empty_where.type.5a8), %V.patt.loc18_43.1: type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @G(%U.param_patt: %Empty_where.type.a58) { +// CHECK:STDOUT: fn @G(%U.param_patt: %Empty_where.type.52c) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %H.ref: %H.type = name_ref H, file.%H.decl [concrete = constants.%H] // CHECK:STDOUT: %int_32.loc21: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc21: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %U.ref: %Empty_where.type.a58 = name_ref U, %U +// CHECK:STDOUT: %U.ref: %Empty_where.type.52c = name_ref U, %U // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc21_17.1: type = value_of_initializer %bool.make_type [concrete = bool] // CHECK:STDOUT: %.loc21_17.2: type = converted %bool.make_type, %.loc21_17.1 [concrete = bool] @@ -238,7 +238,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %assoc0 => constants.%assoc0.68f673.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%T, constants.%Empty.facet.bea) {} +// CHECK:STDOUT: specific @A(constants.%T, constants.%Empty.facet.782) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%T, constants.%V) { // CHECK:STDOUT: %T.loc18_6.2 => constants.%T @@ -249,10 +249,10 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.54c14f.2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.68f673.2 // CHECK:STDOUT: %.Self.as_type.loc18_34.2 => constants.%.Self.as_type.a75 -// CHECK:STDOUT: %.Self.as_wit.loc18_34.2 => constants.%.Self.as_wit.da4 -// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.41c +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_34.2 => constants.%.Self.as_wit.iface0.663 +// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.d0b // CHECK:STDOUT: %ptr.loc18_40.2 => constants.%ptr.79f -// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.4ed +// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.5a8 // CHECK:STDOUT: %V.loc18_43.2 => constants.%V // CHECK:STDOUT: %V.patt.loc18_43.2 => constants.%V // CHECK:STDOUT: } @@ -270,7 +270,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %assoc0 => constants.%assoc0.0c3 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A(constants.%i32, constants.%Empty.facet.933) {} +// CHECK:STDOUT: specific @A(constants.%i32, constants.%Empty.facet.311) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%i32, bool) { // CHECK:STDOUT: %T.loc18_6.2 => constants.%i32 @@ -281,14 +281,14 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.a46 // CHECK:STDOUT: %assoc0 => constants.%assoc0.0c3 // CHECK:STDOUT: %.Self.as_type.loc18_34.2 => constants.%.Self.as_type.920 -// CHECK:STDOUT: %.Self.as_wit.loc18_34.2 => constants.%.Self.as_wit.581 -// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.797 +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_34.2 => constants.%.Self.as_wit.iface0.67d +// CHECK:STDOUT: %impl.elem0.loc18_34.2 => constants.%impl.elem0.1bd // CHECK:STDOUT: %ptr.loc18_40.2 => constants.%ptr.235 -// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.a58 +// CHECK:STDOUT: %Empty_where.type => constants.%Empty_where.type.52c // CHECK:STDOUT: %V.loc18_43.2 => bool // CHECK:STDOUT: %V.patt.loc18_43.2 => bool // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc18_17 => constants.%complete_type.5e7 +// CHECK:STDOUT: %require_complete.loc18_17 => constants.%complete_type.6bd // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/where_expr/equal_rewrite.carbon b/toolchain/check/testdata/where_expr/equal_rewrite.carbon index 100ec35fea92..b0515aae3751 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -172,10 +172,6 @@ interface A {} class D {} impl D as A {} // TODO: This should be a compile-time binding, once that is supported. -// CHECK:STDERR: fail_todo_let.carbon:[[@LINE+11]]:35: error: semantics TODO: `impl lookup for a FacetType with no interface (using `where .Self impls ...` instead?)` [SemanticsTodo] -// CHECK:STDERR: let B: type where .Self impls A = D; -// CHECK:STDERR: ^ -// CHECK:STDERR: // CHECK:STDERR: fail_todo_let.carbon:[[@LINE+7]]:35: error: cannot implicitly convert value of type `type` to `type where...` [ImplicitAsConversionFailure] // CHECK:STDERR: let B: type where .Self impls A = D; // CHECK:STDERR: ^ @@ -232,9 +228,9 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc0: %N.assoc_type = assoc_entity element0, @N.%P [concrete] // CHECK:STDOUT: %.Self: %N.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %N.facet: %N.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %N.facet: %N.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %N_where.type: type = facet_type <@N where %impl.elem0 = %empty_struct_type> [concrete] // CHECK:STDOUT: %T: %N_where.type = bind_symbolic_name T, 0 [symbolic] @@ -268,8 +264,8 @@ let K: (E where .F = .Self.G) = bool; // 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: %.loc8_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_28.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc8_16.2: type = where_expr %.Self [concrete = constants.%N_where.type] { @@ -323,20 +319,20 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %.Self.3ca: %A.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self.as_type.adb: type = facet_access_type %.Self.3ca [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.794: = facet_access_witness %.Self.3ca [symbolic_self] -// CHECK:STDOUT: %A.facet.213: %A.type = facet_value %.Self.as_type.adb, %.Self.as_wit.794 [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.794, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0.844: = facet_access_witness %.Self.3ca, element0 [symbolic_self] +// CHECK:STDOUT: %A.facet.aea: %A.type = facet_value %.Self.as_type.adb, (%.Self.as_wit.iface0.844) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.844, element0 [symbolic_self] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] -// CHECK:STDOUT: %A_where.type.ef9: type = facet_type <@A where %impl.elem0 = bool> [concrete] -// CHECK:STDOUT: %.Self.e46: %A_where.type.ef9 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.6f3: type = facet_access_type %.Self.e46 [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.a35: = facet_access_witness %.Self.e46 [symbolic_self] -// CHECK:STDOUT: %A.facet.e67: %A.type = facet_value %.Self.as_type.6f3, %.Self.as_wit.a35 [symbolic_self] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.a35, element1 [symbolic_self] -// CHECK:STDOUT: %A_where.type.791: type = facet_type <@A where %impl.elem1 = %empty_tuple.type and %impl.elem0 = bool> [concrete] -// CHECK:STDOUT: %D: %A_where.type.791 = bind_symbolic_name D, 0 [symbolic] -// CHECK:STDOUT: %D.patt: %A_where.type.791 = symbolic_binding_pattern D, 0 [symbolic] +// CHECK:STDOUT: %A_where.type.bcb: type = facet_type <@A where %impl.elem0 = bool> [concrete] +// CHECK:STDOUT: %.Self.80b: %A_where.type.bcb = bind_symbolic_name .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.ec1: type = facet_access_type %.Self.80b [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0.d15: = facet_access_witness %.Self.80b, element0 [symbolic_self] +// CHECK:STDOUT: %A.facet.271: %A.type = facet_value %.Self.as_type.ec1, (%.Self.as_wit.iface0.d15) [symbolic_self] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.d15, element1 [symbolic_self] +// CHECK:STDOUT: %A_where.type.248: type = facet_type <@A where %impl.elem1 = %empty_tuple.type and %impl.elem0 = bool> [concrete] +// CHECK:STDOUT: %D: %A_where.type.248 = bind_symbolic_name D, 0 [symbolic] +// CHECK:STDOUT: %D.patt: %A_where.type.248 = symbolic_binding_pattern D, 0 [symbolic] // CHECK:STDOUT: %NestedRewrite.type: type = fn_type @NestedRewrite [concrete] // CHECK:STDOUT: %NestedRewrite: %NestedRewrite.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -358,37 +354,37 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: type = interface_decl @A [concrete = constants.%A.type] {} {} // CHECK:STDOUT: %NestedRewrite.decl: %NestedRewrite.type = fn_decl @NestedRewrite [concrete = constants.%NestedRewrite] { -// CHECK:STDOUT: %D.patt.loc9_18.1: %A_where.type.791 = symbolic_binding_pattern D, 0 [symbolic = %D.patt.loc9_18.2 (constants.%D.patt)] +// CHECK:STDOUT: %D.patt.loc9_18.1: %A_where.type.248 = symbolic_binding_pattern D, 0 [symbolic = %D.patt.loc9_18.2 (constants.%D.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9_42.1: type = splice_block %.loc9_42.2 [concrete = constants.%A_where.type.791] { +// CHECK:STDOUT: %.loc9_42.1: type = splice_block %.loc9_42.2 [concrete = constants.%A_where.type.248] { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %.Self.1: %A.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.3ca] // CHECK:STDOUT: %.Self.ref.loc9_31: %A.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.3ca] // CHECK:STDOUT: %B.ref: %A.assoc_type = name_ref B, @B.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_31: type = facet_access_type %.Self.ref.loc9_31 [symbolic_self = constants.%.Self.as_type.adb] // CHECK:STDOUT: %.loc9_31: type = converted %.Self.ref.loc9_31, %.Self.as_type.loc9_31 [symbolic_self = constants.%.Self.as_type.adb] -// CHECK:STDOUT: %.Self.as_wit.loc9_31: = facet_access_witness %.Self.ref.loc9_31 [symbolic_self = constants.%.Self.as_wit.794] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.loc9_31, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_31: = facet_access_witness %.Self.ref.loc9_31, element0 [symbolic_self = constants.%.Self.as_wit.iface0.844] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.loc9_31, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc9_36.1: type = value_of_initializer %bool.make_type [concrete = bool] // CHECK:STDOUT: %.loc9_36.2: type = converted %bool.make_type, %.loc9_36.1 [concrete = bool] -// CHECK:STDOUT: %.loc9_25: type = where_expr %.Self.1 [concrete = constants.%A_where.type.ef9] { +// CHECK:STDOUT: %.loc9_25: type = where_expr %.Self.1 [concrete = constants.%A_where.type.bcb] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc9_36.2 // CHECK:STDOUT: } -// CHECK:STDOUT: %.Self.2: %A_where.type.ef9 = bind_symbolic_name .Self [symbolic_self = constants.%.Self.e46] -// CHECK:STDOUT: %.Self.ref.loc9_48: %A_where.type.ef9 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e46] +// CHECK:STDOUT: %.Self.2: %A_where.type.bcb = bind_symbolic_name .Self [symbolic_self = constants.%.Self.80b] +// CHECK:STDOUT: %.Self.ref.loc9_48: %A_where.type.bcb = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.80b] // CHECK:STDOUT: %C.ref: %A.assoc_type = name_ref C, @C.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %.Self.as_type.loc9_48: type = facet_access_type %.Self.ref.loc9_48 [symbolic_self = constants.%.Self.as_type.6f3] -// CHECK:STDOUT: %.loc9_48: type = converted %.Self.ref.loc9_48, %.Self.as_type.loc9_48 [symbolic_self = constants.%.Self.as_type.6f3] -// CHECK:STDOUT: %.Self.as_wit.loc9_48: = facet_access_witness %.Self.ref.loc9_48 [symbolic_self = constants.%.Self.as_wit.a35] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.loc9_48, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_type.loc9_48: type = facet_access_type %.Self.ref.loc9_48 [symbolic_self = constants.%.Self.as_type.ec1] +// CHECK:STDOUT: %.loc9_48: type = converted %.Self.ref.loc9_48, %.Self.as_type.loc9_48 [symbolic_self = constants.%.Self.as_type.ec1] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_48: = facet_access_witness %.Self.ref.loc9_48, element0 [symbolic_self = constants.%.Self.as_wit.iface0.d15] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.loc9_48, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc9_54.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_54.2: type = converted %.loc9_54.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc9_42.2: type = where_expr %.Self.2 [concrete = constants.%A_where.type.791] { +// CHECK:STDOUT: %.loc9_42.2: type = where_expr %.Self.2 [concrete = constants.%A_where.type.248] { // CHECK:STDOUT: requirement_rewrite %impl.elem1, %.loc9_54.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %D.loc9_18.1: %A_where.type.791 = bind_symbolic_name D, 0 [symbolic = %D.loc9_18.2 (constants.%D)] +// CHECK:STDOUT: %D.loc9_18.1: %A_where.type.248 = bind_symbolic_name D, 0 [symbolic = %D.loc9_18.2 (constants.%D)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -416,20 +412,20 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: assoc_const C:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NestedRewrite(%D.loc9_18.1: %A_where.type.791) { -// CHECK:STDOUT: %D.loc9_18.2: %A_where.type.791 = bind_symbolic_name D, 0 [symbolic = %D.loc9_18.2 (constants.%D)] -// CHECK:STDOUT: %D.patt.loc9_18.2: %A_where.type.791 = symbolic_binding_pattern D, 0 [symbolic = %D.patt.loc9_18.2 (constants.%D.patt)] +// CHECK:STDOUT: generic fn @NestedRewrite(%D.loc9_18.1: %A_where.type.248) { +// CHECK:STDOUT: %D.loc9_18.2: %A_where.type.248 = bind_symbolic_name D, 0 [symbolic = %D.loc9_18.2 (constants.%D)] +// CHECK:STDOUT: %D.patt.loc9_18.2: %A_where.type.248 = symbolic_binding_pattern D, 0 [symbolic = %D.patt.loc9_18.2 (constants.%D.patt)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%D.patt.loc9_18.1: %A_where.type.791); +// CHECK:STDOUT: fn(%D.patt.loc9_18.1: %A_where.type.248); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @B(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @B(constants.%A.facet.213) {} +// CHECK:STDOUT: specific @B(constants.%A.facet.aea) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%A.facet.e67) {} +// CHECK:STDOUT: specific @C(constants.%A.facet.271) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @NestedRewrite(constants.%D) { // CHECK:STDOUT: %D.loc9_18.2 => constants.%D @@ -446,9 +442,9 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %.Self: %E.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %E.facet: %E.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %E.facet: %E.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %E_where.type: type = facet_type <@E where %impl.elem0 = %i32> [concrete] @@ -460,13 +456,13 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %H.patt: %E_where.type = symbolic_binding_pattern H, 0 [symbolic] // CHECK:STDOUT: %RepeatedRewrite.type: type = fn_type @RepeatedRewrite [concrete] // CHECK:STDOUT: %RepeatedRewrite: %RepeatedRewrite.type = struct_value () [concrete] -// CHECK:STDOUT: %OneRewrite.specific_fn.381461.1: = specific_function %OneRewrite, @OneRewrite(%H) [symbolic] +// CHECK:STDOUT: %OneRewrite.specific_fn.90a0d5.1: = specific_function %OneRewrite, @OneRewrite(%H) [symbolic] // CHECK:STDOUT: %I: %E_where.type = bind_symbolic_name I, 0 [symbolic] // CHECK:STDOUT: %I.patt: %E_where.type = symbolic_binding_pattern I, 0 [symbolic] // CHECK:STDOUT: %OneRewriteAgain.type: type = fn_type @OneRewriteAgain [concrete] // CHECK:STDOUT: %OneRewriteAgain: %OneRewriteAgain.type = struct_value () [concrete] // CHECK:STDOUT: %RepeatedRewrite.specific_fn: = specific_function %RepeatedRewrite, @RepeatedRewrite(%I) [symbolic] -// CHECK:STDOUT: %OneRewrite.specific_fn.381461.2: = specific_function %OneRewrite, @OneRewrite(%I) [symbolic] +// CHECK:STDOUT: %OneRewrite.specific_fn.90a0d5.2: = specific_function %OneRewrite, @OneRewrite(%I) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -497,8 +493,8 @@ let K: (E where .F = .Self.G) = bool; // 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: %.loc8_27: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc8_21.2: type = where_expr %.Self [concrete = constants.%E_where.type] { @@ -517,16 +513,16 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %F.ref.loc10_32: %E.assoc_type = name_ref F, @F.%assoc0 [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_wit.loc10_32: = facet_access_witness %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access %.Self.as_wit.loc10_32, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_32: = facet_access_witness %.Self.ref.loc10_32, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access %.Self.as_wit.iface0.loc10_32, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_32.loc10_37: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc10_37: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %.Self.ref.loc10_45: %E.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %F.ref.loc10_45: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc10_45: type = facet_access_type %.Self.ref.loc10_45 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_45: type = converted %.Self.ref.loc10_45, %.Self.as_type.loc10_45 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc10_45: = facet_access_witness %.Self.ref.loc10_45 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0.loc10_45: type = impl_witness_access %.Self.as_wit.loc10_45, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc10_45: = facet_access_witness %.Self.ref.loc10_45, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc10_45: type = impl_witness_access %.Self.as_wit.iface0.loc10_45, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_32.loc10_50: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32.loc10_50: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %.loc10_26.2: type = where_expr %.Self [concrete = constants.%E_where.type] { @@ -546,8 +542,8 @@ let K: (E where .F = .Self.G) = bool; // 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: %.loc14_32: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc14_26.2: type = where_expr %.Self [concrete = constants.%E_where.type] { @@ -591,13 +587,13 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %H.patt.loc10_20.2: %E_where.type = symbolic_binding_pattern H, 0 [symbolic = %H.patt.loc10_20.2 (constants.%H.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2: = specific_function constants.%OneRewrite, @OneRewrite(%H.loc10_20.2) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.381461.1)] +// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2: = specific_function constants.%OneRewrite, @OneRewrite(%H.loc10_20.2) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.90a0d5.1)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%H.patt.loc10_20.1: %E_where.type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %OneRewrite.ref: %OneRewrite.type = name_ref OneRewrite, file.%OneRewrite.decl [concrete = constants.%OneRewrite] // CHECK:STDOUT: %H.ref: %E_where.type = name_ref H, %H.loc10_20.1 [symbolic = %H.loc10_20.2 (constants.%H)] -// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.1: = specific_function %OneRewrite.ref, @OneRewrite(constants.%H) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.381461.1)] +// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.1: = specific_function %OneRewrite.ref, @OneRewrite(constants.%H) [symbolic = %OneRewrite.specific_fn.loc11_3.2 (constants.%OneRewrite.specific_fn.90a0d5.1)] // CHECK:STDOUT: %OneRewrite.call: init %empty_tuple.type = call %OneRewrite.specific_fn.loc11_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -653,7 +649,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %H.patt.loc10_20.2 => constants.%I // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2 => constants.%OneRewrite.specific_fn.381461.2 +// CHECK:STDOUT: %OneRewrite.specific_fn.loc11_3.2 => constants.%OneRewrite.specific_fn.90a0d5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @RepeatedRewrite(@OneRewriteAgain.%I.loc14_20.2) {} @@ -674,10 +670,10 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %.Self: %J.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit, element1 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0, element1 [symbolic_self] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %J_where.type: type = facet_type <@J where %impl.elem1 = bool and %impl.elem0 = %empty_tuple.type> [concrete] @@ -719,16 +715,16 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc9_29: type = facet_access_type %.Self.ref.loc9_29 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_29: type = converted %.Self.ref.loc9_29, %.Self.as_type.loc9_29 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_29: = facet_access_witness %.Self.ref.loc9_29 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.loc9_29, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_29: = facet_access_witness %.Self.ref.loc9_29, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.loc9_29, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_35.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_35.2: type = converted %.loc9_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.Self.ref.loc9_41: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type.loc9_41: type = facet_access_type %.Self.ref.loc9_41 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_41: type = converted %.Self.ref.loc9_41, %.Self.as_type.loc9_41 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc9_41: = facet_access_witness %.Self.ref.loc9_41 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.loc9_41, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9_41: = facet_access_witness %.Self.ref.loc9_41, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.loc9_41, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc9_46.1: type = value_of_initializer %bool.make_type [concrete = bool] // CHECK:STDOUT: %.loc9_46.2: type = converted %bool.make_type, %.loc9_46.1 [concrete = bool] @@ -749,8 +745,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type.loc11_25: type = facet_access_type %.Self.ref.loc11_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_25: type = converted %.Self.ref.loc11_25, %.Self.as_type.loc11_25 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc11_25: = facet_access_witness %.Self.ref.loc11_25 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.loc11_25, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc11_25: = facet_access_witness %.Self.ref.loc11_25, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.loc11_25, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc11_30.1: type = value_of_initializer %bool.make_type [concrete = bool] // CHECK:STDOUT: %.loc11_30.2: type = converted %bool.make_type, %.loc11_30.1 [concrete = bool] @@ -758,8 +754,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %.Self.as_type.loc11_39: type = facet_access_type %.Self.ref.loc11_39 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_39: type = converted %.Self.ref.loc11_39, %.Self.as_type.loc11_39 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.loc11_39: = facet_access_witness %.Self.ref.loc11_39 [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.loc11_39, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc11_39: = facet_access_witness %.Self.ref.loc11_39, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.loc11_39, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc11_45.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc11_45.2: type = converted %.loc11_45.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc11_19.2: type = where_expr %.Self [concrete = constants.%J_where.type] { @@ -860,21 +856,21 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc0.0e4: %O.assoc_type = assoc_entity element0, @O.%P [concrete] // CHECK:STDOUT: %.Self: %O.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %O.facet: %O.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %O.facet: %O.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %O_where.type.9eb: type = facet_type <@O where %impl.elem0 = %i32> [concrete] -// CHECK:STDOUT: %Q: %O_where.type.9eb = bind_symbolic_name Q, 0 [symbolic] -// CHECK:STDOUT: %Q.patt: %O_where.type.9eb = symbolic_binding_pattern Q, 0 [symbolic] +// CHECK:STDOUT: %O_where.type.fe1: type = facet_type <@O where %impl.elem0 = %i32> [concrete] +// CHECK:STDOUT: %Q: %O_where.type.fe1 = bind_symbolic_name Q, 0 [symbolic] +// CHECK:STDOUT: %Q.patt: %O_where.type.fe1 = symbolic_binding_pattern Q, 0 [symbolic] // CHECK:STDOUT: %WithInteger.type: type = fn_type @WithInteger [concrete] // CHECK:STDOUT: %WithInteger: %WithInteger.type = struct_value () [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] -// CHECK:STDOUT: %O_where.type.0f2: type = facet_type <@O where %impl.elem0 = bool> [concrete] -// CHECK:STDOUT: %R: %O_where.type.0f2 = bind_symbolic_name R, 0 [symbolic] -// CHECK:STDOUT: %R.patt: %O_where.type.0f2 = symbolic_binding_pattern R, 0 [symbolic] +// CHECK:STDOUT: %O_where.type.741: type = facet_type <@O where %impl.elem0 = bool> [concrete] +// CHECK:STDOUT: %R: %O_where.type.741 = bind_symbolic_name R, 0 [symbolic] +// CHECK:STDOUT: %R.patt: %O_where.type.741 = symbolic_binding_pattern R, 0 [symbolic] // CHECK:STDOUT: %WithBool.type: type = fn_type @WithBool [concrete] // CHECK:STDOUT: %WithBool: %WithBool.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -899,45 +895,45 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %O.decl: type = interface_decl @O [concrete = constants.%O.type] {} {} // CHECK:STDOUT: %WithInteger.decl: %WithInteger.type = fn_decl @WithInteger [concrete = constants.%WithInteger] { -// CHECK:STDOUT: %Q.patt.loc8_16.1: %O_where.type.9eb = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] +// CHECK:STDOUT: %Q.patt.loc8_16.1: %O_where.type.fe1 = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [concrete = constants.%O_where.type.9eb] { +// CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [concrete = constants.%O_where.type.fe1] { // CHECK:STDOUT: %O.ref: type = name_ref O, file.%O.decl [concrete = constants.%O.type] // CHECK:STDOUT: %.Self: %O.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %O.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %P.ref: %O.assoc_type = name_ref P, @P.%assoc0 [concrete = constants.%assoc0.0e4] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_28: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] -// CHECK:STDOUT: %.loc8_22.2: type = where_expr %.Self [concrete = constants.%O_where.type.9eb] { +// CHECK:STDOUT: %.loc8_22.2: type = where_expr %.Self [concrete = constants.%O_where.type.fe1] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %i32 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %Q.loc8_16.1: %O_where.type.9eb = bind_symbolic_name Q, 0 [symbolic = %Q.loc8_16.2 (constants.%Q)] +// CHECK:STDOUT: %Q.loc8_16.1: %O_where.type.fe1 = bind_symbolic_name Q, 0 [symbolic = %Q.loc8_16.2 (constants.%Q)] // CHECK:STDOUT: } // CHECK:STDOUT: %WithBool.decl: %WithBool.type = fn_decl @WithBool [concrete = constants.%WithBool] { -// CHECK:STDOUT: %R.patt.loc10_13.1: %O_where.type.0f2 = symbolic_binding_pattern R, 0 [symbolic = %R.patt.loc10_13.2 (constants.%R.patt)] +// CHECK:STDOUT: %R.patt.loc10_13.1: %O_where.type.741 = symbolic_binding_pattern R, 0 [symbolic = %R.patt.loc10_13.2 (constants.%R.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc10_19.1: type = splice_block %.loc10_19.2 [concrete = constants.%O_where.type.0f2] { +// CHECK:STDOUT: %.loc10_19.1: type = splice_block %.loc10_19.2 [concrete = constants.%O_where.type.741] { // CHECK:STDOUT: %O.ref: type = name_ref O, file.%O.decl [concrete = constants.%O.type] // CHECK:STDOUT: %.Self: %O.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %O.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %P.ref: %O.assoc_type = name_ref P, @P.%assoc0 [concrete = constants.%assoc0.0e4] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc10_30.1: type = value_of_initializer %bool.make_type [concrete = bool] // CHECK:STDOUT: %.loc10_30.2: type = converted %bool.make_type, %.loc10_30.1 [concrete = bool] -// CHECK:STDOUT: %.loc10_19.2: type = where_expr %.Self [concrete = constants.%O_where.type.0f2] { +// CHECK:STDOUT: %.loc10_19.2: type = where_expr %.Self [concrete = constants.%O_where.type.741] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc10_30.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %R.loc10_13.1: %O_where.type.0f2 = bind_symbolic_name R, 0 [symbolic = %R.loc10_13.2 (constants.%R)] +// CHECK:STDOUT: %R.loc10_13.1: %O_where.type.741 = bind_symbolic_name R, 0 [symbolic = %R.loc10_13.2 (constants.%R)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -957,29 +953,29 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: assoc_const P:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WithInteger(%Q.loc8_16.1: %O_where.type.9eb) { -// CHECK:STDOUT: %Q.loc8_16.2: %O_where.type.9eb = bind_symbolic_name Q, 0 [symbolic = %Q.loc8_16.2 (constants.%Q)] -// CHECK:STDOUT: %Q.patt.loc8_16.2: %O_where.type.9eb = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] +// CHECK:STDOUT: generic fn @WithInteger(%Q.loc8_16.1: %O_where.type.fe1) { +// CHECK:STDOUT: %Q.loc8_16.2: %O_where.type.fe1 = bind_symbolic_name Q, 0 [symbolic = %Q.loc8_16.2 (constants.%Q)] +// CHECK:STDOUT: %Q.patt.loc8_16.2: %O_where.type.fe1 = symbolic_binding_pattern Q, 0 [symbolic = %Q.patt.loc8_16.2 (constants.%Q.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%Q.patt.loc8_16.1: %O_where.type.9eb) { +// CHECK:STDOUT: fn(%Q.patt.loc8_16.1: %O_where.type.fe1) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WithBool(%R.loc10_13.1: %O_where.type.0f2) { -// CHECK:STDOUT: %R.loc10_13.2: %O_where.type.0f2 = bind_symbolic_name R, 0 [symbolic = %R.loc10_13.2 (constants.%R)] -// CHECK:STDOUT: %R.patt.loc10_13.2: %O_where.type.0f2 = symbolic_binding_pattern R, 0 [symbolic = %R.patt.loc10_13.2 (constants.%R.patt)] +// CHECK:STDOUT: generic fn @WithBool(%R.loc10_13.1: %O_where.type.741) { +// CHECK:STDOUT: %R.loc10_13.2: %O_where.type.741 = bind_symbolic_name R, 0 [symbolic = %R.loc10_13.2 (constants.%R)] +// CHECK:STDOUT: %R.patt.loc10_13.2: %O_where.type.741 = symbolic_binding_pattern R, 0 [symbolic = %R.patt.loc10_13.2 (constants.%R.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%R.patt.loc10_13.1: %O_where.type.0f2) { +// CHECK:STDOUT: fn(%R.patt.loc10_13.1: %O_where.type.741) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %WithInteger.ref: %WithInteger.type = name_ref WithInteger, file.%WithInteger.decl [concrete = constants.%WithInteger] -// CHECK:STDOUT: %R.ref: %O_where.type.0f2 = name_ref R, %R.loc10_13.1 [symbolic = %R.loc10_13.2 (constants.%R)] -// CHECK:STDOUT: %.loc21: %O_where.type.9eb = converted %R.ref, [concrete = ] +// CHECK:STDOUT: %R.ref: %O_where.type.741 = name_ref R, %R.loc10_13.1 [symbolic = %R.loc10_13.2 (constants.%R)] +// CHECK:STDOUT: %.loc21: %O_where.type.fe1 = converted %R.ref, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1009,18 +1005,18 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %.Self: %S.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %S.facet: %S.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] -// CHECK:STDOUT: %S_where.type.e40: type = facet_type <@S where %impl.elem0 = %empty_tuple.type> [concrete] -// CHECK:STDOUT: %V: %S_where.type.e40 = bind_symbolic_name V, 0 [symbolic] -// CHECK:STDOUT: %V.patt: %S_where.type.e40 = symbolic_binding_pattern V, 0 [symbolic] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %S.facet: %S.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] +// CHECK:STDOUT: %S_where.type.15b: type = facet_type <@S where %impl.elem0 = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %V: %S_where.type.15b = bind_symbolic_name V, 0 [symbolic] +// CHECK:STDOUT: %V.patt: %S_where.type.15b = symbolic_binding_pattern V, 0 [symbolic] // CHECK:STDOUT: %WithT.type: type = fn_type @WithT [concrete] // CHECK:STDOUT: %WithT: %WithT.type = struct_value () [concrete] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit, element1 [symbolic_self] -// CHECK:STDOUT: %S_where.type.357: type = facet_type <@S where %impl.elem1 = %empty_tuple.type> [concrete] -// CHECK:STDOUT: %W: %S_where.type.357 = bind_symbolic_name W, 0 [symbolic] -// CHECK:STDOUT: %W.patt: %S_where.type.357 = symbolic_binding_pattern W, 0 [symbolic] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0, element1 [symbolic_self] +// CHECK:STDOUT: %S_where.type.0be: type = facet_type <@S where %impl.elem1 = %empty_tuple.type> [concrete] +// CHECK:STDOUT: %W: %S_where.type.0be = bind_symbolic_name W, 0 [symbolic] +// CHECK:STDOUT: %W.patt: %S_where.type.0be = symbolic_binding_pattern W, 0 [symbolic] // CHECK:STDOUT: %WithU.type: type = fn_type @WithU [concrete] // CHECK:STDOUT: %WithU: %WithU.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -1043,44 +1039,44 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %S.decl: type = interface_decl @S [concrete = constants.%S.type] {} {} // CHECK:STDOUT: %WithT.decl: %WithT.type = fn_decl @WithT [concrete = constants.%WithT] { -// CHECK:STDOUT: %V.patt.loc9_10.1: %S_where.type.e40 = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc9_10.2 (constants.%V.patt)] +// CHECK:STDOUT: %V.patt.loc9_10.1: %S_where.type.15b = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc9_10.2 (constants.%V.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [concrete = constants.%S_where.type.e40] { +// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [concrete = constants.%S_where.type.15b] { // CHECK:STDOUT: %S.ref: type = name_ref S, file.%S.decl [concrete = constants.%S.type] // CHECK:STDOUT: %.Self: %S.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %S.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %S.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0.720] // 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_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_28.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc9_28.2: type = converted %.loc9_28.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc9_16.2: type = where_expr %.Self [concrete = constants.%S_where.type.e40] { +// CHECK:STDOUT: %.loc9_16.2: type = where_expr %.Self [concrete = constants.%S_where.type.15b] { // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc9_28.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %V.loc9_10.1: %S_where.type.e40 = bind_symbolic_name V, 0 [symbolic = %V.loc9_10.2 (constants.%V)] +// CHECK:STDOUT: %V.loc9_10.1: %S_where.type.15b = bind_symbolic_name V, 0 [symbolic = %V.loc9_10.2 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: %WithU.decl: %WithU.type = fn_decl @WithU [concrete = constants.%WithU] { -// CHECK:STDOUT: %W.patt.loc11_10.1: %S_where.type.357 = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc11_10.2 (constants.%W.patt)] +// CHECK:STDOUT: %W.patt.loc11_10.1: %S_where.type.0be = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc11_10.2 (constants.%W.patt)] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc11_16.1: type = splice_block %.loc11_16.2 [concrete = constants.%S_where.type.357] { +// CHECK:STDOUT: %.loc11_16.1: type = splice_block %.loc11_16.2 [concrete = constants.%S_where.type.0be] { // CHECK:STDOUT: %S.ref: type = name_ref S, file.%S.decl [concrete = constants.%S.type] // CHECK:STDOUT: %.Self: %S.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %S.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %U.ref: %S.assoc_type = name_ref U, @U.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit, element1 [symbolic_self = constants.%impl.elem1] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc11_28.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc11_28.2: type = converted %.loc11_28.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc11_16.2: type = where_expr %.Self [concrete = constants.%S_where.type.357] { +// CHECK:STDOUT: %.loc11_16.2: type = where_expr %.Self [concrete = constants.%S_where.type.0be] { // CHECK:STDOUT: requirement_rewrite %impl.elem1, %.loc11_28.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %W.loc11_10.1: %S_where.type.357 = bind_symbolic_name W, 0 [symbolic = %W.loc11_10.2 (constants.%W)] +// CHECK:STDOUT: %W.loc11_10.1: %S_where.type.0be = bind_symbolic_name W, 0 [symbolic = %W.loc11_10.2 (constants.%W)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1108,29 +1104,29 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: assoc_const U:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WithT(%V.loc9_10.1: %S_where.type.e40) { -// CHECK:STDOUT: %V.loc9_10.2: %S_where.type.e40 = bind_symbolic_name V, 0 [symbolic = %V.loc9_10.2 (constants.%V)] -// CHECK:STDOUT: %V.patt.loc9_10.2: %S_where.type.e40 = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc9_10.2 (constants.%V.patt)] +// CHECK:STDOUT: generic fn @WithT(%V.loc9_10.1: %S_where.type.15b) { +// CHECK:STDOUT: %V.loc9_10.2: %S_where.type.15b = bind_symbolic_name V, 0 [symbolic = %V.loc9_10.2 (constants.%V)] +// CHECK:STDOUT: %V.patt.loc9_10.2: %S_where.type.15b = symbolic_binding_pattern V, 0 [symbolic = %V.patt.loc9_10.2 (constants.%V.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%V.patt.loc9_10.1: %S_where.type.e40) { +// CHECK:STDOUT: fn(%V.patt.loc9_10.1: %S_where.type.15b) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @WithU(%W.loc11_10.1: %S_where.type.357) { -// CHECK:STDOUT: %W.loc11_10.2: %S_where.type.357 = bind_symbolic_name W, 0 [symbolic = %W.loc11_10.2 (constants.%W)] -// CHECK:STDOUT: %W.patt.loc11_10.2: %S_where.type.357 = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc11_10.2 (constants.%W.patt)] +// CHECK:STDOUT: generic fn @WithU(%W.loc11_10.1: %S_where.type.0be) { +// CHECK:STDOUT: %W.loc11_10.2: %S_where.type.0be = bind_symbolic_name W, 0 [symbolic = %W.loc11_10.2 (constants.%W)] +// CHECK:STDOUT: %W.patt.loc11_10.2: %S_where.type.0be = symbolic_binding_pattern W, 0 [symbolic = %W.patt.loc11_10.2 (constants.%W.patt)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: fn(%W.patt.loc11_10.1: %S_where.type.357) { +// CHECK:STDOUT: fn(%W.patt.loc11_10.1: %S_where.type.0be) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %WithT.ref: %WithT.type = name_ref WithT, file.%WithT.decl [concrete = constants.%WithT] -// CHECK:STDOUT: %W.ref: %S_where.type.357 = name_ref W, %W.loc11_10.1 [symbolic = %W.loc11_10.2 (constants.%W)] -// CHECK:STDOUT: %.loc22: %S_where.type.e40 = converted %W.ref, [concrete = ] +// CHECK:STDOUT: %W.ref: %S_where.type.0be = name_ref W, %W.loc11_10.1 [symbolic = %W.loc11_10.2 (constants.%W)] +// CHECK:STDOUT: %.loc22: %S_where.type.15b = converted %W.ref, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1164,26 +1160,26 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %N.type: type = facet_type <@N> [concrete] // CHECK:STDOUT: %.Self.9aa: %N.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.cef: = facet_access_witness %.Self.9aa [symbolic_self] -// CHECK:STDOUT: %impl.elem0.51b: type = impl_witness_access %.Self.as_wit.cef, element0 [symbolic_self] -// CHECK:STDOUT: %N_where.type: type = facet_type <@N where %impl.elem0.51b = %empty_struct_type> [concrete] -// CHECK:STDOUT: %T.patt.dbc: %N_where.type = symbolic_binding_pattern T, 0 [symbolic] -// CHECK:STDOUT: %T.7ae: %N_where.type = bind_symbolic_name T, 0 [symbolic] +// CHECK:STDOUT: %.Self.as_wit.iface0.e75: = facet_access_witness %.Self.9aa, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0.a31: type = impl_witness_access %.Self.as_wit.iface0.e75, element0 [symbolic_self] +// CHECK:STDOUT: %N_where.type: type = facet_type <@N where %impl.elem0.a31 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %T.patt.68f: %N_where.type = symbolic_binding_pattern T, 0 [symbolic] +// CHECK:STDOUT: %T.8dd: %N_where.type = bind_symbolic_name T, 0 [symbolic] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %NestedRewrite.type: type = fn_type @NestedRewrite [concrete] // CHECK:STDOUT: %NestedRewrite: %NestedRewrite.type = struct_value () [concrete] // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] // CHECK:STDOUT: %.Self.3ca: %A.type = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.794: = facet_access_witness %.Self.3ca [symbolic_self] -// CHECK:STDOUT: %impl.elem0.1d3: type = impl_witness_access %.Self.as_wit.794, element0 [symbolic_self] -// CHECK:STDOUT: %A_where.type.ef9: type = facet_type <@A where %impl.elem0.1d3 = bool> [concrete] -// CHECK:STDOUT: %.Self.e46: %A_where.type.ef9 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.a35: = facet_access_witness %.Self.e46 [symbolic_self] -// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.a35, element1 [symbolic_self] -// CHECK:STDOUT: %A_where.type.791: type = facet_type <@A where %impl.elem1 = %empty_tuple.type and %impl.elem0.1d3 = bool> [concrete] -// CHECK:STDOUT: %D.patt: %A_where.type.791 = symbolic_binding_pattern D, 0 [symbolic] -// CHECK:STDOUT: %D: %A_where.type.791 = bind_symbolic_name D, 0 [symbolic] +// CHECK:STDOUT: %.Self.as_wit.iface0.844: = facet_access_witness %.Self.3ca, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0.696: type = impl_witness_access %.Self.as_wit.iface0.844, element0 [symbolic_self] +// CHECK:STDOUT: %A_where.type.bcb: type = facet_type <@A where %impl.elem0.696 = bool> [concrete] +// CHECK:STDOUT: %.Self.80b: %A_where.type.bcb = bind_symbolic_name .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0.d15: = facet_access_witness %.Self.80b, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem1: type = impl_witness_access %.Self.as_wit.iface0.d15, element1 [symbolic_self] +// CHECK:STDOUT: %A_where.type.248: type = facet_type <@A where %impl.elem1 = %empty_tuple.type and %impl.elem0.696 = bool> [concrete] +// CHECK:STDOUT: %D.patt: %A_where.type.248 = symbolic_binding_pattern D, 0 [symbolic] +// CHECK:STDOUT: %D: %A_where.type.248 = bind_symbolic_name D, 0 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: } @@ -1200,16 +1196,16 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.1690 = import_ref Main//equal_constraint, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.169 = import_ref Main//equal_constraint, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.020 = import_ref Main//equal_constraint, loc5_8, unloaded // CHECK:STDOUT: %Main.P = import_ref Main//equal_constraint, P, unloaded -// CHECK:STDOUT: %Main.import_ref.252: %N_where.type = import_ref Main//equal_constraint, loc8_10, loaded [symbolic = @Equal.1.%T (constants.%T.7ae)] +// CHECK:STDOUT: %Main.import_ref.3bc: %N_where.type = import_ref Main//equal_constraint, loc8_10, loaded [symbolic = @Equal.1.%T (constants.%T.8dd)] // CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//nested_rewrites, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.91a = import_ref Main//nested_rewrites, loc5_8, unloaded // CHECK:STDOUT: %Main.import_ref.55d = import_ref Main//nested_rewrites, loc6_8, unloaded // CHECK:STDOUT: %Main.B = import_ref Main//nested_rewrites, B, unloaded // CHECK:STDOUT: %Main.C = import_ref Main//nested_rewrites, C, unloaded -// CHECK:STDOUT: %Main.import_ref.169f: %A_where.type.791 = import_ref Main//nested_rewrites, loc9_18, loaded [symbolic = @NestedRewrite.%D (constants.%D)] +// CHECK:STDOUT: %Main.import_ref.705: %A_where.type.248 = import_ref Main//nested_rewrites, loc9_18, loaded [symbolic = @NestedRewrite.%D (constants.%D)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1228,7 +1224,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: interface @N [from "equal_constraint.carbon"] { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = imports.%Main.import_ref.1690 +// CHECK:STDOUT: .Self = imports.%Main.import_ref.169 // CHECK:STDOUT: .P = imports.%Main.import_ref.020 // CHECK:STDOUT: witness = (imports.%Main.P) // CHECK:STDOUT: } @@ -1249,27 +1245,27 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %NestedRewrite.ref: %NestedRewrite.type = name_ref NestedRewrite, imports.%Main.NestedRewrite [concrete = constants.%NestedRewrite] // 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: %.loc32: %A_where.type.791 = converted %i32, [concrete = ] +// CHECK:STDOUT: %.loc32: %A_where.type.248 = converted %i32, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Equal.1(imports.%Main.import_ref.252: %N_where.type) [from "equal_constraint.carbon"] { -// CHECK:STDOUT: %T: %N_where.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.7ae)] -// CHECK:STDOUT: %T.patt.2: %N_where.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.2 (constants.%T.patt.dbc)] +// CHECK:STDOUT: generic fn @Equal.1(imports.%Main.import_ref.3bc: %N_where.type) [from "equal_constraint.carbon"] { +// CHECK:STDOUT: %T: %N_where.type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T.8dd)] +// CHECK:STDOUT: %T.patt.2: %N_where.type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.2 (constants.%T.patt.68f)] // CHECK:STDOUT: // CHECK:STDOUT: fn(%T.patt.1: %N_where.type); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @NestedRewrite(imports.%Main.import_ref.169f: %A_where.type.791) [from "nested_rewrites.carbon"] { -// CHECK:STDOUT: %D: %A_where.type.791 = bind_symbolic_name D, 0 [symbolic = %D (constants.%D)] -// CHECK:STDOUT: %D.patt.2: %A_where.type.791 = symbolic_binding_pattern D, 0 [symbolic = %D.patt.2 (constants.%D.patt)] +// CHECK:STDOUT: generic fn @NestedRewrite(imports.%Main.import_ref.705: %A_where.type.248) [from "nested_rewrites.carbon"] { +// CHECK:STDOUT: %D: %A_where.type.248 = bind_symbolic_name D, 0 [symbolic = %D (constants.%D)] +// CHECK:STDOUT: %D.patt.2: %A_where.type.248 = symbolic_binding_pattern D, 0 [symbolic = %D.patt.2 (constants.%D.patt)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%D.patt.1: %A_where.type.791); +// CHECK:STDOUT: fn(%D.patt.1: %A_where.type.248); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Equal.1(constants.%T.7ae) { -// CHECK:STDOUT: %T => constants.%T.7ae -// CHECK:STDOUT: %T.patt.2 => constants.%T.7ae +// CHECK:STDOUT: specific @Equal.1(constants.%T.8dd) { +// CHECK:STDOUT: %T => constants.%T.8dd +// CHECK:STDOUT: %T.patt.2 => constants.%T.8dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @NestedRewrite(constants.%D) { @@ -1286,9 +1282,9 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc0.05b: %I.assoc_type = assoc_entity element0, @I.%Member [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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %X.patt: = symbolic_binding_pattern X, 0 [symbolic] // CHECK:STDOUT: %RewriteTypeMismatch.type: type = fn_type @RewriteTypeMismatch [concrete] @@ -1321,8 +1317,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0.05b] // CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc16_36: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] // CHECK:STDOUT: %.loc16_46: type = converted %int_2, [concrete = ] // CHECK:STDOUT: %.loc16_30.2: type = where_expr %.Self [concrete = ] { @@ -1402,15 +1398,15 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %B.patt: %type_where = binding_pattern B // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc19_13.1: type = splice_block %.loc19_13.2 [concrete = constants.%type_where] { +// CHECK:STDOUT: %.loc15_13.1: type = splice_block %.loc15_13.2 [concrete = constants.%type_where] { // CHECK:STDOUT: %.Self: type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %A.ref: type = name_ref A, %A.decl [concrete = constants.%A.type] -// CHECK:STDOUT: %.loc19_13.2: type = where_expr %.Self [concrete = constants.%type_where] { +// CHECK:STDOUT: %.loc15_13.2: type = where_expr %.Self [concrete = constants.%type_where] { // CHECK:STDOUT: requirement_impls %.Self.ref, %A.ref // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc19_35: %type_where = converted @__global_init.%D.ref, [concrete = ] +// CHECK:STDOUT: %.loc15_35: %type_where = converted @__global_init.%D.ref, [concrete = ] // CHECK:STDOUT: %B: %type_where = bind_name B, // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1452,27 +1448,27 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %.Self.da5: %E.type = bind_symbolic_name .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self.as_type.34e: type = facet_access_type %.Self.da5 [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.f42: = facet_access_witness %.Self.da5 [symbolic_self] -// CHECK:STDOUT: %E.facet.74f: %E.type = facet_value %.Self.as_type.34e, %.Self.as_wit.f42 [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.f42, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0.7f0: = facet_access_witness %.Self.da5, element0 [symbolic_self] +// CHECK:STDOUT: %E.facet.99c: %E.type = facet_value %.Self.as_type.34e, (%.Self.as_wit.iface0.7f0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0.7f0, element0 [symbolic_self] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] -// CHECK:STDOUT: %impl.elem1.91f: type = impl_witness_access %.Self.as_wit.f42, element1 [symbolic_self] -// CHECK:STDOUT: %E_where.type.366: type = facet_type <@E where %impl.elem1.91f = %empty_tuple.type and %impl.elem0 = bool> [concrete] +// CHECK:STDOUT: %impl.elem1.7a9: type = impl_witness_access %.Self.as_wit.iface0.7f0, element1 [symbolic_self] +// CHECK:STDOUT: %E_where.type.281: type = facet_type <@E where %impl.elem1.7a9 = %empty_tuple.type and %impl.elem0 = bool> [concrete] // CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [concrete] // CHECK:STDOUT: %Float.type: type = fn_type @Float [concrete] // CHECK:STDOUT: %Float: %Float.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] -// CHECK:STDOUT: %E_where.type.324: type = facet_type <@E where %impl.elem0 = %empty_struct_type> [concrete] -// CHECK:STDOUT: %.Self.665: %E_where.type.324 = bind_symbolic_name .Self [symbolic_self] -// CHECK:STDOUT: %.Self.as_type.c08: type = facet_access_type %.Self.665 [symbolic_self] -// CHECK:STDOUT: %.Self.as_wit.bb3: = facet_access_witness %.Self.665 [symbolic_self] -// CHECK:STDOUT: %E.facet.f08: %E.type = facet_value %.Self.as_type.c08, %.Self.as_wit.bb3 [symbolic_self] -// CHECK:STDOUT: %impl.elem1.244: type = impl_witness_access %.Self.as_wit.bb3, element1 [symbolic_self] +// CHECK:STDOUT: %E_where.type.c42: type = facet_type <@E where %impl.elem0 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %.Self.450: %E_where.type.c42 = bind_symbolic_name .Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.450: type = facet_access_type %.Self.450 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0.b26: = facet_access_witness %.Self.450, element0 [symbolic_self] +// CHECK:STDOUT: %E.facet.8b4: %E.type = facet_value %.Self.as_type.450, (%.Self.as_wit.iface0.b26) [symbolic_self] +// CHECK:STDOUT: %impl.elem1.bae: type = impl_witness_access %.Self.as_wit.iface0.b26, element1 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %E_where.type.bef: type = facet_type <@E where %impl.elem1.244 = %i32 and %impl.elem0 = %empty_struct_type> [concrete] -// CHECK:STDOUT: %E_where.type.503: type = facet_type <@E where %impl.elem0 = %impl.elem1.91f> [concrete] +// CHECK:STDOUT: %E_where.type.d43: type = facet_type <@E where %impl.elem1.bae = %i32 and %impl.elem0 = %empty_struct_type> [concrete] +// CHECK:STDOUT: %E_where.type.ca8: type = facet_type <@E where %impl.elem0 = %impl.elem1.7a9> [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1497,17 +1493,17 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %E.decl: type = interface_decl @E [concrete = constants.%E.type] {} {} // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %H.patt: %E_where.type.366 = binding_pattern H +// CHECK:STDOUT: %H.patt: %E_where.type.281 = binding_pattern H // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc18_11.1: type = splice_block %.loc18_11.2 [concrete = constants.%E_where.type.366] { +// CHECK:STDOUT: %.loc18_11.1: type = splice_block %.loc18_11.2 [concrete = constants.%E_where.type.281] { // CHECK:STDOUT: %E.ref.loc18: type = name_ref E, %E.decl [concrete = constants.%E.type] // CHECK:STDOUT: %.Self.1: %E.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.da5] // CHECK:STDOUT: %.Self.ref.loc18_17: %E.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.da5] // CHECK:STDOUT: %F.ref.loc18: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0.9c3] // CHECK:STDOUT: %.Self.as_type.loc18_17: type = facet_access_type %.Self.ref.loc18_17 [symbolic_self = constants.%.Self.as_type.34e] // CHECK:STDOUT: %.loc18_17: type = converted %.Self.ref.loc18_17, %.Self.as_type.loc18_17 [symbolic_self = constants.%.Self.as_type.34e] -// CHECK:STDOUT: %.Self.as_wit.loc18_17: = facet_access_witness %.Self.ref.loc18_17 [symbolic_self = constants.%.Self.as_wit.f42] -// CHECK:STDOUT: %impl.elem0.loc18: type = impl_witness_access %.Self.as_wit.loc18_17, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_17: = facet_access_witness %.Self.ref.loc18_17, element0 [symbolic_self = constants.%.Self.as_wit.iface0.7f0] +// CHECK:STDOUT: %impl.elem0.loc18: type = impl_witness_access %.Self.as_wit.iface0.loc18_17, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] // CHECK:STDOUT: %.loc18_22.1: type = value_of_initializer %bool.make_type [concrete = bool] // CHECK:STDOUT: %.loc18_22.2: type = converted %bool.make_type, %.loc18_22.1 [concrete = bool] @@ -1515,73 +1511,73 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %G.ref.loc18: %E.assoc_type = name_ref G, @G.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type.loc18_31: type = facet_access_type %.Self.ref.loc18_31 [symbolic_self = constants.%.Self.as_type.34e] // CHECK:STDOUT: %.loc18_31: type = converted %.Self.ref.loc18_31, %.Self.as_type.loc18_31 [symbolic_self = constants.%.Self.as_type.34e] -// CHECK:STDOUT: %.Self.as_wit.loc18_31: = facet_access_witness %.Self.ref.loc18_31 [symbolic_self = constants.%.Self.as_wit.f42] -// CHECK:STDOUT: %impl.elem1.loc18: type = impl_witness_access %.Self.as_wit.loc18_31, element1 [symbolic_self = constants.%impl.elem1.91f] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18_31: = facet_access_witness %.Self.ref.loc18_31, element0 [symbolic_self = constants.%.Self.as_wit.iface0.7f0] +// CHECK:STDOUT: %impl.elem1.loc18: type = impl_witness_access %.Self.as_wit.iface0.loc18_31, element1 [symbolic_self = constants.%impl.elem1.7a9] // CHECK:STDOUT: %.loc18_37.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc18_37.2: type = converted %.loc18_37.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc18_11.2: type = where_expr %.Self.1 [concrete = constants.%E_where.type.366] { +// CHECK:STDOUT: %.loc18_11.2: type = where_expr %.Self.1 [concrete = constants.%E_where.type.281] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18, %.loc18_22.2 // CHECK:STDOUT: requirement_rewrite %impl.elem1.loc18, %.loc18_37.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc18_42: %E_where.type.366 = converted @__global_init.%float.make_type, [concrete = ] -// CHECK:STDOUT: %H: %E_where.type.366 = bind_name H, +// CHECK:STDOUT: %.loc18_42: %E_where.type.281 = converted @__global_init.%float.make_type, [concrete = ] +// CHECK:STDOUT: %H: %E_where.type.281 = bind_name H, // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %J.patt: %E_where.type.bef = binding_pattern J +// CHECK:STDOUT: %J.patt: %E_where.type.d43 = binding_pattern J // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc27_27.1: type = splice_block %.loc27_27.2 [concrete = constants.%E_where.type.bef] { +// CHECK:STDOUT: %.loc27_27.1: type = splice_block %.loc27_27.2 [concrete = constants.%E_where.type.d43] { // CHECK:STDOUT: %E.ref.loc27: type = name_ref E, %E.decl [concrete = constants.%E.type] // CHECK:STDOUT: %.Self.2: %E.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.da5] // CHECK:STDOUT: %.Self.ref.loc27_18: %E.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.da5] // CHECK:STDOUT: %F.ref.loc27: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0.9c3] // CHECK:STDOUT: %.Self.as_type.loc27_18: type = facet_access_type %.Self.ref.loc27_18 [symbolic_self = constants.%.Self.as_type.34e] // CHECK:STDOUT: %.loc27_18: type = converted %.Self.ref.loc27_18, %.Self.as_type.loc27_18 [symbolic_self = constants.%.Self.as_type.34e] -// CHECK:STDOUT: %.Self.as_wit.loc27_18: = facet_access_witness %.Self.ref.loc27_18 [symbolic_self = constants.%.Self.as_wit.f42] -// CHECK:STDOUT: %impl.elem0.loc27: type = impl_witness_access %.Self.as_wit.loc27_18, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc27_18: = facet_access_witness %.Self.ref.loc27_18, element0 [symbolic_self = constants.%.Self.as_wit.iface0.7f0] +// CHECK:STDOUT: %impl.elem0.loc27: type = impl_witness_access %.Self.as_wit.iface0.loc27_18, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc27_24.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc27_24.2: type = converted %.loc27_24.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %.loc27_12: type = where_expr %.Self.2 [concrete = constants.%E_where.type.324] { +// CHECK:STDOUT: %.loc27_12: type = where_expr %.Self.2 [concrete = constants.%E_where.type.c42] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc27, %.loc27_24.2 // CHECK:STDOUT: } -// CHECK:STDOUT: %.Self.3: %E_where.type.324 = bind_symbolic_name .Self [symbolic_self = constants.%.Self.665] -// CHECK:STDOUT: %.Self.ref.loc27_33: %E_where.type.324 = name_ref .Self, %.Self.3 [symbolic_self = constants.%.Self.665] +// CHECK:STDOUT: %.Self.3: %E_where.type.c42 = bind_symbolic_name .Self [symbolic_self = constants.%.Self.450] +// CHECK:STDOUT: %.Self.ref.loc27_33: %E_where.type.c42 = name_ref .Self, %.Self.3 [symbolic_self = constants.%.Self.450] // CHECK:STDOUT: %G.ref.loc27: %E.assoc_type = name_ref G, @G.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %.Self.as_type.loc27_33: type = facet_access_type %.Self.ref.loc27_33 [symbolic_self = constants.%.Self.as_type.c08] -// CHECK:STDOUT: %.loc27_33: type = converted %.Self.ref.loc27_33, %.Self.as_type.loc27_33 [symbolic_self = constants.%.Self.as_type.c08] -// CHECK:STDOUT: %.Self.as_wit.loc27_33: = facet_access_witness %.Self.ref.loc27_33 [symbolic_self = constants.%.Self.as_wit.bb3] -// CHECK:STDOUT: %impl.elem1.loc27: type = impl_witness_access %.Self.as_wit.loc27_33, element1 [symbolic_self = constants.%impl.elem1.244] +// CHECK:STDOUT: %.Self.as_type.loc27_33: type = facet_access_type %.Self.ref.loc27_33 [symbolic_self = constants.%.Self.as_type.450] +// CHECK:STDOUT: %.loc27_33: type = converted %.Self.ref.loc27_33, %.Self.as_type.loc27_33 [symbolic_self = constants.%.Self.as_type.450] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc27_33: = facet_access_witness %.Self.ref.loc27_33, element0 [symbolic_self = constants.%.Self.as_wit.iface0.b26] +// CHECK:STDOUT: %impl.elem1.loc27: type = impl_witness_access %.Self.as_wit.iface0.loc27_33, element1 [symbolic_self = constants.%impl.elem1.bae] // 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: %.loc27_27.2: type = where_expr %.Self.3 [concrete = constants.%E_where.type.bef] { +// CHECK:STDOUT: %.loc27_27.2: type = where_expr %.Self.3 [concrete = constants.%E_where.type.d43] { // CHECK:STDOUT: requirement_rewrite %impl.elem1.loc27, %i32 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc27_45: %E_where.type.bef = converted @__global_init.%bool.make_type.loc27, [concrete = ] -// CHECK:STDOUT: %J: %E_where.type.bef = bind_name J, +// CHECK:STDOUT: %.loc27_45: %E_where.type.d43 = converted @__global_init.%bool.make_type.loc27, [concrete = ] +// CHECK:STDOUT: %J: %E_where.type.d43 = bind_name J, // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %K.patt: %E_where.type.503 = binding_pattern K +// CHECK:STDOUT: %K.patt: %E_where.type.ca8 = binding_pattern K // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc36_11.1: type = splice_block %.loc36_11.2 [concrete = constants.%E_where.type.503] { +// CHECK:STDOUT: %.loc36_11.1: type = splice_block %.loc36_11.2 [concrete = constants.%E_where.type.ca8] { // CHECK:STDOUT: %E.ref.loc36: type = name_ref E, %E.decl [concrete = constants.%E.type] // CHECK:STDOUT: %.Self.4: %E.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self.da5] // CHECK:STDOUT: %.Self.ref.loc36_17: %E.type = name_ref .Self, %.Self.4 [symbolic_self = constants.%.Self.da5] // CHECK:STDOUT: %F.ref.loc36: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0.9c3] // CHECK:STDOUT: %.Self.as_type.loc36_17: type = facet_access_type %.Self.ref.loc36_17 [symbolic_self = constants.%.Self.as_type.34e] // CHECK:STDOUT: %.loc36_17: type = converted %.Self.ref.loc36_17, %.Self.as_type.loc36_17 [symbolic_self = constants.%.Self.as_type.34e] -// CHECK:STDOUT: %.Self.as_wit.loc36_17: = facet_access_witness %.Self.ref.loc36_17 [symbolic_self = constants.%.Self.as_wit.f42] -// CHECK:STDOUT: %impl.elem0.loc36: type = impl_witness_access %.Self.as_wit.loc36_17, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc36_17: = facet_access_witness %.Self.ref.loc36_17, element0 [symbolic_self = constants.%.Self.as_wit.iface0.7f0] +// CHECK:STDOUT: %impl.elem0.loc36: type = impl_witness_access %.Self.as_wit.iface0.loc36_17, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.Self.ref.loc36_22: %E.type = name_ref .Self, %.Self.4 [symbolic_self = constants.%.Self.da5] // CHECK:STDOUT: %G.ref.loc36: %E.assoc_type = name_ref G, @G.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %.Self.as_type.loc36_27: type = facet_access_type %.Self.ref.loc36_22 [symbolic_self = constants.%.Self.as_type.34e] // CHECK:STDOUT: %.loc36_27: type = converted %.Self.ref.loc36_22, %.Self.as_type.loc36_27 [symbolic_self = constants.%.Self.as_type.34e] -// CHECK:STDOUT: %.Self.as_wit.loc36_27: = facet_access_witness %.Self.ref.loc36_22 [symbolic_self = constants.%.Self.as_wit.f42] -// CHECK:STDOUT: %impl.elem1.loc36: type = impl_witness_access %.Self.as_wit.loc36_27, element1 [symbolic_self = constants.%impl.elem1.91f] -// CHECK:STDOUT: %.loc36_11.2: type = where_expr %.Self.4 [concrete = constants.%E_where.type.503] { +// CHECK:STDOUT: %.Self.as_wit.iface0.loc36_27: = facet_access_witness %.Self.ref.loc36_22, element0 [symbolic_self = constants.%.Self.as_wit.iface0.7f0] +// CHECK:STDOUT: %impl.elem1.loc36: type = impl_witness_access %.Self.as_wit.iface0.loc36_27, element1 [symbolic_self = constants.%impl.elem1.7a9] +// CHECK:STDOUT: %.loc36_11.2: type = where_expr %.Self.4 [concrete = constants.%E_where.type.ca8] { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc36, %impl.elem1.loc36 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc36_33: %E_where.type.503 = converted @__global_init.%bool.make_type.loc36, [concrete = ] -// CHECK:STDOUT: %K: %E_where.type.503 = bind_name K, +// CHECK:STDOUT: %.loc36_33: %E_where.type.ca8 = converted @__global_init.%bool.make_type.loc36, [concrete = ] +// CHECK:STDOUT: %K: %E_where.type.ca8 = bind_name K, // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @E { @@ -1621,9 +1617,9 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%Self.19a) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%E.facet.74f) {} +// CHECK:STDOUT: specific @F(constants.%E.facet.99c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%E.facet.74f) {} +// CHECK:STDOUT: specific @G(constants.%E.facet.99c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%E.facet.f08) {} +// CHECK:STDOUT: specific @G(constants.%E.facet.8b4) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/where_expr/non_generic.carbon b/toolchain/check/testdata/where_expr/non_generic.carbon index 208ffa186b44..84d186baabca 100644 --- a/toolchain/check/testdata/where_expr/non_generic.carbon +++ b/toolchain/check/testdata/where_expr/non_generic.carbon @@ -22,9 +22,9 @@ fn NotGenericF(U: I where .T == i32) {} // 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.as_wit: = facet_access_witness %.Self [symbolic_self] -// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, %.Self.as_wit [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self, element0 [symbolic_self] +// CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where TODO> [concrete] @@ -60,8 +60,8 @@ fn NotGenericF(U: I where .T == i32) {} // 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: %.loc14_27: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit: = facet_access_witness %.Self.ref [symbolic_self = constants.%.Self.as_wit] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_wit.iface0: = facet_access_witness %.Self.ref, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, 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] // CHECK:STDOUT: %.loc14_21.2: type = where_expr %.Self [concrete = constants.%I_where.type] { diff --git a/toolchain/sem_ir/ids.h b/toolchain/sem_ir/ids.h index e8a05c144358..807219dc9db8 100644 --- a/toolchain/sem_ir/ids.h +++ b/toolchain/sem_ir/ids.h @@ -551,6 +551,51 @@ constexpr InstBlockId InstBlockId::ImportRefs = InstBlockId(2); constexpr InstBlockId InstBlockId::GlobalInit = InstBlockId(3); constexpr InstBlockId InstBlockId::Unreachable = InstBlockId(NoneIndex - 1); +// Contains either an `InstBlockId` value, an error value, or +// `InstBlockId::None`. +// +// Error values are treated as values, though they are not representable as an +// `InstBlockId` (unlike for the singleton error `InstId`). +class InstBlockIdOrError { + public: + // NOLINTNEXTLINE(google-explicit-constructor) + InstBlockIdOrError(SemIR::InstBlockId inst_block_id) + : InstBlockIdOrError(inst_block_id, false) {} + + static auto MakeError() -> InstBlockIdOrError { + return {SemIR::InstBlockId::None, true}; + } + + // Returns whether this class contains either an InstBlockId (other than + // `None`) or an error. + // + // An error is treated as a value (as same for the singleton error `InstId`), + // but it can not actually be materialized as an error value outside of this + // class. + auto has_value() const -> bool { + return has_error_value() || inst_block_id_.has_value(); + } + + // Returns whether this class contains an error value. + auto has_error_value() const -> bool { return error_; } + + // Returns the id of a non-empty inst block, or `None` if `has_value()` is + // false. + // + // Only valid to call if `has_error_value()` is false. + auto inst_block_id() const -> SemIR::InstBlockId { + CARBON_CHECK(!has_error_value()); + return inst_block_id_; + } + + private: + InstBlockIdOrError(SemIR::InstBlockId inst_block_id, bool error) + : inst_block_id_(inst_block_id), error_(error) {} + + SemIR::InstBlockId inst_block_id_; + bool error_; +}; + // An ID of an instruction block that is referenced absolutely by an // instruction. This should only be used as the type of a field within a typed // instruction class. See AbsoluteInstId. diff --git a/toolchain/sem_ir/inst_namer.cpp b/toolchain/sem_ir/inst_namer.cpp index e119140b7134..723b0ca5fbda 100644 --- a/toolchain/sem_ir/inst_namer.cpp +++ b/toolchain/sem_ir/inst_namer.cpp @@ -612,10 +612,13 @@ auto InstNamer::CollectNamesInBlock(ScopeId top_scope_id, } case CARBON_KIND(FacetAccessWitness inst): { auto name_id = facet_access_name_id(inst.facet_value_inst_id); + RawStringOstream out; if (name_id.has_value()) { - add_inst_name_id(name_id, ".as_wit"); + out << ".as_wit.iface" << inst.index.index; + add_inst_name_id(name_id, out.TakeStr()); } else { - add_inst_name("as_wit"); + out << "as_wit.iface" << inst.index.index; + add_inst_name(out.TakeStr()); } continue; } diff --git a/toolchain/sem_ir/stringify_type.cpp b/toolchain/sem_ir/stringify_type.cpp index 671338610936..5a5e0a42fd40 100644 --- a/toolchain/sem_ir/stringify_type.cpp +++ b/toolchain/sem_ir/stringify_type.cpp @@ -40,6 +40,7 @@ class StepStack { Inst, FixedString, Name, + Index, }; Kind kind; @@ -51,6 +52,8 @@ class StepStack { const char* fixed_string; // The name to print, when kind is Name. NameId name_id; + // The element index to print, when kind is Index. + ElementIndex element_index; }; }; @@ -71,6 +74,9 @@ class StepStack { auto PushNameId(NameId name_id) -> void { steps_.push_back({.kind = Step::Name, .name_id = name_id}); } + auto PushElementIndex(ElementIndex element_index) -> void { + steps_.push_back({.kind = Step::Index, .element_index = element_index}); + } // Pushes all components of a qualified name (`A.B.C`) onto the stack. auto PushQualifiedName(NameScopeId name_scope_id, NameId name_id) -> void { @@ -162,6 +168,9 @@ auto StringifyTypeExpr(const SemIR::File& sem_ir, InstId outer_inst_id) case StepStack::Step::FixedString: out << step.fixed_string; continue; + case StepStack::Step::Index: + out << step.element_index.index; + continue; case StepStack::Step::Name: out << sem_ir.names().GetFormatted(step.name_id); continue; @@ -253,6 +262,8 @@ auto StringifyTypeExpr(const SemIR::File& sem_ir, InstId outer_inst_id) case CARBON_KIND(FacetAccessWitness inst): { out << ""); + step_stack.PushElementIndex(inst.index); + step_stack.PushString(", interface "); step_stack.PushInstId(inst.facet_value_inst_id); break; } diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index fa38ae89b367..f9f2216a58b3 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -655,6 +655,9 @@ struct FacetAccessWitness { TypeId type_id; // An instruction that evaluates to a `FacetValue`. InstId facet_value_inst_id; + // An index to a single `ImplWitness` in the witness block of the `FacetValue` + // from `facet_value_inst_id`. + ElementIndex index; }; // A facet type value. @@ -670,8 +673,8 @@ struct FacetType { FacetTypeId facet_type_id; }; -// A facet value, the value of a facet type. This consists of a type and a -// witness that it satisfies the facet type. +// A facet value, the value of a facet type. This consists of a type and a set +// of witnesses that it satisfies the required interfaces of the facet type. struct FacetValue { static constexpr auto Kind = InstKind::FacetValue.Define( {.ir_name = "facet_value", .constant_kind = InstConstantKind::Always}); @@ -680,8 +683,11 @@ struct FacetValue { TypeId type_id; // The type that you will get if you cast this value to `type`. InstId type_inst_id; - // An `ImplWitness` instruction (TODO: `FacetTypeWitness`). - InstId witness_inst_id; + // The set of `ImplWitness` instructions for a `FacetType`. The witnesses are + // in the same order as the set of `required_interfaces` in the + // `CompleteFacetType` of the `FacetType` from `type_id`, so that an index + // from one can be used with the other. + InstBlockId witnesses_block_id; }; // A field in a class, of the form `var field: field_type;`. The type of the @@ -838,7 +844,7 @@ struct ImplWitness { // constants. .is_lowered = false}); - // Always the builtin witness type. + // Always the type of the builtin `WitnessType` singleton instruction. TypeId type_id; AbsoluteInstBlockId elements_id; SpecificId specific_id; @@ -1647,7 +1653,7 @@ struct WhereExpr { InstBlockId requirements_id; }; -// The type of witnesses. +// The type of `ImplWitness` instructions. struct WitnessType { static constexpr auto Kind = InstKind::WitnessType.Define( {.ir_name = "",